Kirjoittaja Aihe: Videonpakkaus, ilman suoritinta (CPU)  (Luettu 5761 kertaa)

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11482
    • Profiili
    • Tomin kotisivut
Videonpakkaus, ilman suoritinta (CPU)
« : 08.08.12 - klo:22.46 »
Mietin, että voisikohan videota pakata pienemmällä virrankuluksella ja nopeammin jollain lisäkortilla. Tarve olisi laittaa palvelinkoneeseen, jossa vain AMD:n 2,1 GHz tuplaydin, videon pakkaus SD-tasoiselle kuvalle (tällä hetkellä ainakin) mielellään h264:ksi. Video on MPEG2-TS:ää ja tavoite olisi kutistaa kokoa ja mahdollistaa helppo katsominen kännykällä ja mahdollisesti esimerkiksi Raspberry Pi:llä. Voisikohan lisäkorttipaikkaan (PCI tai PCI-E 16x tai 1x) saada jonkin pakkauskortin (encode).
Video tulee MythTV:ltä, joten siihen (tai MythWebiin) integroiminen (olen valmis scriptaamaan) olisi plussaa, mutta se on sitten sen ajan murhe, eikä edes täysi välttämättömyys. Tosin jollain tavalla käteväksi se pitää tehdä.

Tiedän, että näytönohjaimella on joskus kokeiltu pakata, mutta käsittääkseni se ei ole ollut kovin menestyksekästä nopeuden, laadun tai virrankulutuksen suhteen, joten se ei liene vaihtoehto.

Törmäsin tälläiseen: http://www.matrox.com/video/en/products/compresshd/
Voisikohan tuolla, tai jollain vastaavalla saada pakattua videota? Linuxia (Ubuntu 12.04 LTS Server Edition) käytetään tietenkin ja virrankulutus tuossa olisi aika sopivat 10 wattia (toki esimerkiksi 50W vielä voidaan hyväksyä, jos nopeus on kunnollinen). En tosin tiedä tuon kyseisen mallin Linux-yhteensopivuudesta tai pakkausnopeudesta mitään (saati hinnasta), mutta jäähdytyssiilitön (pieni lämmöntuotto) ja vähävirtainen ratkaisu kuulostaa hyvältä. Hintaa pitää harkita mahdollisuuksien puitteissa.

Muokkaus: Okei, jos hinnat on tätä luokkaa (500$) niin ei kiinnosta. Luin arvostelun, jossa toki käytetty Windowsia: http://www.cdrlabs.com/Reviews/matrox-compresshd-h264-encoding-accelerator-card.html
Muita ehdotuksia?

Muokkaus: Korjattu otsikkoa.
« Viimeksi muokattu: 10.08.12 - klo:17.36 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16432
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #1 : 09.08.12 - klo:02.31 »
Muita ehdotuksia?

Kokeile ensin, kuinka nopeasti x264 pakkaa prosessorillasi, jos käytät rautaenkoodereita vastaavia laatuasetuksia:

x264 --crf 20 --preset faster --tune film -o output.264 input.ts

Jos --preset faster on liian hidas, myös --preset veryfast tuottaa parempaa laatua kuin alle kymppitonnin rautaenkooderit. Jos tiedostokoko on liian iso, nosta CRF-arvoa hieman. 22-24 voi olla vielä siedettävä isommallakin näytöllä, jos lähde on huono (kuten DVB on Suomessa Ylen kanavia lukuunottamatta) tai jos et ole turhan nirso laadun suhteen.
« Viimeksi muokattu: 09.08.12 - klo:02.32 kirjoittanut nm »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11482
    • Profiili
    • Tomin kotisivut
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #2 : 09.08.12 - klo:12.00 »
Muita ehdotuksia?

Kokeile ensin, kuinka nopeasti x264 pakkaa prosessorillasi, jos käytät rautaenkoodereita vastaavia laatuasetuksia

Kokeillaan. Yksi syy miksi en haluaisi pakata suorittimella on sekin etten haluaisi sen häiritsevän muita toimia.
Aloitin tuon pakkauksen äsken ja käytän siinä noin puolen tunnin mittaista ohjelmaa. Nopeus ainakin tällä hetkellä on 25-30 fps ja ainakin eta:n perusteella reaaliajassa (noin puoli tuntia väitti kestävän).
Koodia: [Valitse]
ffms [info]: 720x576i 64:45 @ 25024/1001 fps (vfr)
x264 [warning]: input appears to be interlaced, enabling tff interlaced mode.
                If you want otherwise, use --no-interlaced or --bff
x264 [warning]: interlace + weightp is not implemented
x264 [info]: using SAR=64/45
x264 [info]: using cpu capabilities: MMX2 SSE2Slow SlowCTZ
x264 [info]: profile High, level 3.0
Seuraavalla rivillä on ne tiedot, mutta niitä onkin vähän kinkkisempi napata tekstiksi. Laskee tuon videon pituuden tuplaksi, varmaankin lomituksen vuoksi. Lisään tähän viestiin tulokset kun tuo on valmis.

Tavallaan jännä ettei vieläkään ole tehty asiallisia videonpakkauskortteja vaikka kuitenkin h264 on ollut käytössä jo ihan jonkin aikaa. Tosin näytönohjaimiin on ilmeisesti tulossa myös pakkausteknologiaa. Ainakin Intelillä on QuickSync (joka ei auta minua) ja Nvidialla näkyy Keplereissä (liian kalliita ja tehonnälkäisiä minulle) on joku nvenc.

Laadusta en tiedä mitään kun sopiva on vielä selvittämättä. Kuitenkaan en usko, että kännykän näytölle (3,9", 854x480) tarvitsee mitään hirveän ihmeellistä olla. Handbrakella joskus muunsin muutaman videon kiireellä, vartti meni kuhunkin (Phenom II X4 3,8 GHz) kun en mitään asetuksista tiennyt, ja varmasti olisin voinut tiputtaa laatua. Tekstejä en myöskään YLEn tallennuksiin saanut laitettua vaikka yritin.

Muuten olisi tuolla laatikossa yksi Intel Core 2 Duo T7200 (2,0 GHz tuplaydin) joutavana, josko sen saisi jotenkin PCI-E-paikkaan pakkaamaan. ;) Tosin se ei varmastikaan olisi äänetön, mitä myöskin kaipaisin.

Muokkaus: Noinii, nyt on valmista:
Koodia: [Valitse]
ffms [info]: 720x576i 64:45 @ 25024/1001 fps (vfr)
x264 [warning]: input appears to be interlaced, enabling tff interlaced mode.
                If you want otherwise, use --no-interlaced or --bff
x264 [warning]: interlace + weightp is not implemented
x264 [info]: using SAR=64/45
x264 [info]: using cpu capabilities: MMX2 SSE2Slow SlowCTZ
x264 [info]: profile High, level 3.0
x264 [info]: frame I:661   Avg QP:15.02  size: 43003                          
x264 [info]: frame P:20230 Avg QP:18.55  size: 11979
x264 [info]: frame B:24041 Avg QP:19.50  size:  2477
x264 [info]: consecutive B-frames: 20.7% 19.4% 13.9% 46.1%
x264 [info]: mb I  I16..4: 30.3% 28.6% 41.1%
x264 [info]: mb P  I16..4: 10.3% 11.2%  3.9%  P16..4: 23.5%  9.4%  5.0%  0.0%  0.0%    skip:36.7%
x264 [info]: mb B  I16..4:  1.3%  2.2%  0.3%  B16..8: 20.3%  4.3%  0.5%  direct: 6.9%  skip:64.2%  L0:41.8% L1:48.9% BI: 9.3%
x264 [info]: field mbs: intra: 7.8% inter:5.6% skip:4.6%
x264 [info]: 8x8 transform intra:44.5% inter:50.6%
x264 [info]: coded y,uvDC,uvAC intra: 47.6% 58.7% 28.0% inter: 11.7% 17.2% 4.9%
x264 [info]: i16 v,h,dc,p: 66% 21% 10%  3%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 20% 45%  1%  2%  2%  1%  2%  2%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 23% 19%  3%  7%  5%  5%  5%  6%
x264 [info]: i8c dc,h,v,p: 49% 21% 26%  4%
x264 [info]: ref P L0: 73.2% 25.3%  1.0%  0.4%
x264 [info]: ref B L0: 74.9% 23.6%  1.1%  0.4%
x264 [info]: ref B L1: 88.8% 10.7%  0.4%  0.1%
x264 [info]: kb/s:1470.11

encoded 44932 frames, 34.22 fps, 1470.11 kb/s
Kokoa videolle tuli 316M, mutta se ei toistu VLC:llä, eikä SMPlayerillä. Toinen h264 pätkä kyllä toistui.
« Viimeksi muokattu: 09.08.12 - klo:12.37 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11482
    • Profiili
    • Tomin kotisivut
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #3 : 09.08.12 - klo:13.20 »
Tein nyt sitten vielä testin veryfastin nopeudesta:
Koodia: [Valitse]
ffms [info]: 720x576i 64:45 @ 25024/1001 fps (vfr)
x264 [warning]: input appears to be interlaced, enabling tff interlaced mode.
                If you want otherwise, use --no-interlaced or --bff
x264 [warning]: interlace + weightp is not implemented
x264 [info]: using SAR=64/45
x264 [info]: using cpu capabilities: MMX2 SSE2Slow SlowCTZ
x264 [info]: profile High, level 3.0
x264 [info]: frame I:661   Avg QP:15.40  size: 39741                          
x264 [info]: frame P:20227 Avg QP:18.80  size: 10626
x264 [info]: frame B:24044 Avg QP:19.21  size:  1975
x264 [info]: consecutive B-frames: 20.7% 19.4% 13.9% 46.1%
x264 [info]: mb I  I16..4: 30.5% 28.8% 40.7%
x264 [info]: mb P  I16..4: 12.1%  6.9%  1.7%  P16..4: 24.5%  9.7%  6.8%  0.0%  0.0%    skip:38.3%
x264 [info]: mb B  I16..4:  1.3%  0.6%  0.1%  B16..8: 12.1%  3.6%  0.7%  direct: 6.6%  skip:75.1%  L0:39.4% L1:46.1% BI:14.5%
x264 [info]: field mbs: intra: 9.1% inter:5.9% skip:4.4%
x264 [info]: 8x8 transform intra:32.7% inter:44.2%
x264 [info]: coded y,uvDC,uvAC intra: 35.4% 51.2% 23.0% inter: 10.7% 15.1% 4.1%
x264 [info]: i16 v,h,dc,p: 69% 20% 10%  1%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 20% 49%  1%  1%  1%  1%  1%  2%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 25% 19%  2%  6%  4%  4%  4%  5%
x264 [info]: i8c dc,h,v,p: 52% 21% 25%  3%
x264 [info]: kb/s:1284.92

encoded 44932 frames, 57.47 fps, 1284.92 kb/s

Sain nuo näkymään kun käytin mplayeriä ilman parametreja, jotain vdpau ongelmia. Täytyy sanoa, että ei ole kummassakaan kovin kummoinen kuvanlaatu (yllätys :P). Lisäksi jostain syystä kuva on jotenkin liian nopean oloinen. Tuommoistako nuo (hintavat) kortit tuottavat? Ilmeisesti pitää tyytyä siirtämään kaikki videot pöytäkoneelle muuntamista varten ja sitten lisätä MythTV:n videoarkistoon jos jotain haluaa säilyttää. Samoin kännykän kanssa pitää tehdä vanhanaikaisesti niin että muuntaa koneella ja kopsaa sinne, kun ei nämä (nyt Nokia N9) osaa MPEG2-TS:ää toistaa. Vähentää vaan tuota kännykän arvoa viihdelaitteena, koska ei kovin usein välittäisi tehdä monimutkaisia vaiheita.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16432
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #4 : 09.08.12 - klo:13.44 »
Kokeillaan. Yksi syy miksi en haluaisi pakata suorittimella on sekin etten haluaisi sen häiritsevän muita toimia.

Vaikutus muiden ohjelmien suoritukseen on vähäinen, jos pudotat x264-prosessin prioriteetin mahdollisimman alas (nostat nice-arvon 19:ään). Prosessori toki käy maksimiteholla, joten jännitteet kannattaa minimoida jäähdystarpeen pienentämiseksi.

ffms [info]: 720x576i 64:45 @ 25024/1001 fps (vfr)

Hmm, ffms tunnistaa TS-tiedoston kuvanopeuden hieman väärin. Sen voi pakottaa oikeaksi valinnoilla --force-cfr --fps 25

Toisaalta ffms (ja vaihtoehtoinen --demuxer lavf) bugittaa ehkä muutenkin TS:n kanssa sen verran, että video kannattaisi ehkä demuksata Project-X:llä. Silloin saat videoraidan ulos paremmin toimivana .m2v-tiedostona.


Tavallaan jännä ettei vieläkään ole tehty asiallisia videonpakkauskortteja vaikka kuitenkin h264 on ollut käytössä jo ihan jonkin aikaa.

Asiallisimmat kuluttajaluokan rautaenkooderit toimivat DSP-siruilla ja niitä löytyy kameroista ja nykyisin myös kännyköistä. Laatu on kuitenkin vain samaa luokkaa kuin x264:n --preset veryfast. H.264-enkooderit ovat erittäin monimutkaisia ja laadukkaan enkooderin toteuttaminen puhtaasti raudalla olisi liian haasteellista. Sen sijaan hyvän softaenkooderin kuormaa voisi keventää ohjelmoitavalla DSP-piirillä, jos sellaisia vain olisi avoimesti käytettävissä. Raspberrypi:n SoC:ssähän on tuollainen DSP-piiri, mutta valitettavasti sen dokumentaatio ei ole julkista. Intelin Quick Sync -raudan kanssa on sama tilanne.

Tekstejä en myöskään YLEn tallennuksiin saanut laitettua vaikka yritin.

Ne voi myös demuksata Project-X:llä ja piirtää sitten videoon esimerkiksi ffmpegillä tai MEncoderilla. Tai voit tehdä kaiken ffmpegillä, jos osaat selvittää oikeiden raitojen PID:t jollain konstilla:

http://ffmpeg.org/ffmpeg.html#Advanced-options
Lainaus
For example, to hardcode subtitles on top of a DVB-T recording stored in MPEG-TS format, delaying the subtitles by 1 second:

Koodia: [Valitse]
ffmpeg -i input.ts -filter_complex \
  '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
  -sn -map '#0x2dc' output.mkv

(0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the video, audio and subtitles streams; 0:0, 0:3 and 0:7 would have worked too)


Vaihtoehtoisesti HandBrakeen on saatavissa paikkaus DVB-tekstien piirtämistä varten: http://www.linuxtv.fi/viewtopic.php?f=13&t=4512


Kokoa videolle tuli 316M, mutta se ei toistu VLC:llä, eikä SMPlayerillä. Toinen h264 pätkä kyllä toistui.

Olikohan niin, että VLC toistaa vain H.264-perusvirrat, jotka on nimetty tiedostopäätteellä .h264? MPlayer voi toimia paremmin, jos pakotat käyttöön h264es-demukserin: -demuxer h264es

Voit myös sijoittaa videon Matroska-säiliöön: mkvmerge input.264 -o output.mkv
Puhelimen kanssa joutunet käyttämään MP4-formaattia.

nm

  • Käyttäjä
  • Viestejä: 16432
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #5 : 09.08.12 - klo:13.49 »
Täytyy sanoa, että ei ole kummassakaan kovin kummoinen kuvanlaatu (yllätys :P). Lisäksi jostain syystä kuva on jotenkin liian nopean oloinen.

Pakkauksen laatu on --crf 20:llä hyvä, kunhan lähde on kunnossa (tiedoston koko vain on melko iso suhteessa siihen laatuun, jos verrataan hitaampiin esiasetuksiin).

Kuvaamasi ongelma johtuu todennäköisesti ffms:n MPEG-TS-demukserin bugeista. Heikko laatu seuraa väärästä kuvanopeudesta tai muista lähdeongelmista. Joutunet joko demuksaamaan TS-tiedoston Project-X:llä tai pakkaamaan ffmpegin tai HandBraken kautta.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11482
    • Profiili
    • Tomin kotisivut
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #6 : 09.08.12 - klo:14.18 »
Tavallaan jännä ettei vieläkään ole tehty asiallisia videonpakkauskortteja vaikka kuitenkin h264 on ollut käytössä jo ihan jonkin aikaa.

Asiallisimmat kuluttajaluokan rautaenkooderit toimivat DSP-siruilla ja niitä löytyy kameroista ja nykyisin myös kännyköistä. Laatu on kuitenkin vain samaa luokkaa kuin x264:n --preset veryfast. H.264-enkooderit ovat erittäin monimutkaisia ja laadukkaan enkooderin toteuttaminen puhtaasti raudalla olisi liian haasteellista. Sen sijaan hyvän softaenkooderin kuormaa voisi keventää ohjelmoitavalla DSP-piirillä, jos sellaisia vain olisi avoimesti käytettävissä. Raspberrypi:n SoC:ssähän on tuollainen DSP-piiri, mutta valitettavasti sen dokumentaatio ei ole julkista. Intelin Quick Sync -raudan kanssa on sama tilanne.

Asia selvä. Eli suorittimella mennään, pitää joskus joutessani selvitellä itselle sopivimmat asetukset noihin ja sitten tutkia mahdollisuuksia fiksuimpaan toteutukseen nykyisellä raudalla. Ilmeisesti Handbrakeen/x264:ään on/oli suunnitteilla OpenCL avustuksia joihinkin toimintoihin. Harmi ettei niitä pääse käyttämään palvelimen Radeon 3000:lla (ja radeon-ajurilla). Pöytäkoneessa onkin sitten ihan jonkin verran tehokkaampi kortti, GeForce GTX460.

Kokoa videolle tuli 316M, mutta se ei toistu VLC:llä, eikä SMPlayerillä. Toinen h264 pätkä kyllä toistui.

Olikohan niin, että VLC toistaa vain H.264-perusvirrat, jotka on nimetty tiedostopäätteellä .h264? MPlayer voi toimia paremmin, jos pakotat käyttöön h264es-demukserin: -demuxer h264es
Joo, heti kun muutin päätteen 264:stä h264:ksi niin rupesi näkymään VLC:llä, SMPlayeriä en kokeillut. Saattaisihan tämäkin faster-asetuksella enkoodattu video mennä kännykällä vielä, mutta ei varamsti kelpaa arkistointiin. Joka tapauksessa kiitos neuvoista, katselen paremmalla ajalla (ja koneella) noita asetuksia tarkemmin.

Voit myös sijoittaa videon Matroska-säiliöön: mkvmerge input.264 -o output.mkv
Puhelimen kanssa joutunet käyttämään MP4-formaattia.
mkv toimi ihan hyvin kun sitä viimeksi kokeilin. Tämä on kuitenkin Meego.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16432
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #7 : 09.08.12 - klo:14.58 »
Saattaisihan tämäkin faster-asetuksella enkoodattu video mennä kännykällä vielä, mutta ei varamsti kelpaa arkistointiin.

--crf 20 tuottaa kyllä varsin kelvollista laatua isollakin TV:llä katseltavaksi nopeusesivalinnasta riippumatta. Pakatun videon laadun ei pitäisi poiketa alkuperäisestä DVB-tallenteesta juuri lainkaan.

Ongelma on x264:n käyttämässä MPEG-TS-demukserissa, joka nyt jotenkin rikkoo videosi. Kun saat syötteen kuntoon, laatua voi tarvittaessa parantaa laskemalla CRF-arvoa, mutta silloin tiedostojen kokokin luonnollisesti kasvaa.
« Viimeksi muokattu: 09.08.12 - klo:15.01 kirjoittanut nm »

Postimies

  • Käyttäjä
  • Viestejä: 2644
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #8 : 09.08.12 - klo:15.05 »
Eikös tuo demuksaus Project-X:llä ole aika pakollinen. Kun viimeksi vdr:n ts tiedostoja koetin matroskaan pistää oli tekstinen kanssa ongelmia. Saatava 001.m2v sitten koodataan. Mistä on paljon juttua yllä. Ääni on sitten hankalampi. Raidat hieman vaihtelee usein 001-02.mp2. Jotkut soittimet tykkää ac3. joillekin kelpaa mp3. Matroskan saa sitten kun koodaukset tehty tyyliin

optio --language 0:fin 001.sup.idx # yle tekstit mukaan jos YLE nauhoitus, muuten ei

mkvmerge --language 0:fin 001.sup.idx --title leffan_nimi  --aspect-ratio 1:16/9 leffa.h264 -o leffa.mkv

jotain tuollaista yritin aikoinani ja tekstit näkyivät vaihtelevalla menestyksellä - riippuen soittimesta. Välillä oikein, välillä sitten olivat siniset tai keltaiset. Johtuu sitten  Project-X:n väärästä värimallista. Kyllästyin lopulta, kun en saanut tekstejä toimimaan kunnolla. Jos joku on tuosta toimivan skriptin saanut aikaiseksi olisin kiinnostunut. Muuten helppo, mutta ääniraiden selvittäminen ja kunnon tekstien saaminen ulos hankalaa. Ylellä kun on se hollannin kieli joka lukee tekstejä.. Itselläkin oli silloin 45W AMD tupla prosu, joten koodaus kesti, mutta ei merkittävästi haitannut muuta käyttöä.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11482
    • Profiili
    • Tomin kotisivut
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #9 : 09.08.12 - klo:15.33 »
Okei, nyt kun katson lähdemateriaalia niin täytyy todeta että se saattoi olla ihan hyvä, mutta pitää vielä myöhemmin tutkia lisää. Voisi pätkäistä pätkän jostian elokuvasta projectx:llä ja sitten tehdä siitä muutama muunnos.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16432
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #10 : 09.08.12 - klo:15.34 »
Eikös tuo demuksaus Project-X:llä ole aika pakollinen.

ffmpegillä voi nykyisin tehdä koko operaation, jos DVB-tekstitystä ei tarvitse muuntaa Vobsub-muotoon. FFmpeg osaa myös tarvittaessa polttaa DVB-tekstit kuvaan. Paikatulla HandBrakella onnistuu myös.

Jos haluaa vobsub-tekstit, ne voi muuntaa DVB-tekstityksestä täällä olevalla mkvmerge-paikkauksella: http://www.linuxtv.fi/viewtopic.php?f=13&t=4512
Tuo toiminee paremmin kuin Project-X:n muunnos, joka tosiaan vaatii oikean värimallin.

Tässä vielä yksi ratkaisu Vobsub-tekstien ja Blu-ray-yhteensopivien PGS-tekstien tuottamiseen: http://www.linuxtv.fi/viewtopic.php?f=12&t=4702


Helppo ratkaisu tekstitysongelmiin on käyttää Ylen tarjoamia tekstitv-tekstejä. Ne saa suoraan SRT-muotoon Project-X:llä, kun asettaa sivunumerot oikein (TV1=451, TV2=452, Teema=453, Fem=771). Viivettä voi tosin joutua korjailemaan ja ainakin VDR-tallenteissa ProjectX hukkaa satunnaisesti kaikkien tekstien aikaleimat.
« Viimeksi muokattu: 09.08.12 - klo:15.36 kirjoittanut nm »

Postimies

  • Käyttäjä
  • Viestejä: 2644
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #11 : 09.08.12 - klo:16.13 »

ffmpegillä voi nykyisin tehdä koko operaation, jos DVB-tekstitystä ei tarvitse muuntaa Vobsub-muotoon. FFmpeg osaa myös tarvittaessa polttaa DVB-tekstit kuvaan. Paikatulla HandBrakella onnistuu myös.



Kiitos todella hienosta vastauksesta. Leikkaan sen talteen. Yllä olikin ffmpeg esimerkki. Koetan sitä, jos sillä menee koko operaatio. Toimiiko se myös vdr 1.6x tallenteilla? Kelpaako ffmpeg -i 001.vdr 002.vdr ....
vai pitääkö noi pistää yhteen esim. cat 002.vdr >>  001.vdr. Handbrake ja muut hienoudet vielä asentamatta tässä koneessa. Java ja projetX uupuu myös. ffmpeg-0.10.4 löytyy ja sen voisi päivittääkkin, mutta se voi helposti rikkoa jotain...

edit..

Koodia: [Valitse]
fmpeg -i input.ts -filter_complex \
  '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
  -sn -map '#0x2dc' output.mkv

Ei toiminut suoraan tällä.. Tuo on joku paikattu fmpeg?

#0x2dc   - äänen tunniste?
#0x2ef    - subtitles?
#0x2d0   - video?

 
« Viimeksi muokattu: 09.08.12 - klo:17.46 kirjoittanut Postimies »

nm

  • Käyttäjä
  • Viestejä: 16432
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #12 : 09.08.12 - klo:18.46 »
Ei toiminut suoraan tällä.. Tuo on joku paikattu fmpeg?

-filter_complex vaatii ffmpegin tai libav:n uusimman kehitysversion. 0.10.4:ssä ei vielä ole sitä.

#0x2dc   - äänen tunniste?
#0x2ef    - subtitles?
#0x2d0   - video?

Juu. Nuo PID:t voivat siis olla erilaiset joka tallenteessa ja ne pitää tutkia erikseen. FFmpeg näyttää tarvittavat tiedot komennolla ffmpeg -i tiedosto.ts

Pakkauksen automatisointia varten pitäisi sitten  kirjoittaa skripti, joka etsii kielipreferenssejä vastaavat PID:t tallenteesta ilman käyttäjän toimenpiteitä.


Toimiiko se myös vdr 1.6x tallenteilla? Kelpaako ffmpeg -i 001.vdr 002.vdr ....
vai pitääkö noi pistää yhteen esim. cat 002.vdr >>  001.vdr.

Joudut yhdistämään. En nyt muista, löytääkö FFmpeg DVB-tekstityksen VDR 1.6:n tiedostoista. Ne voi joutua muuntamaan TS:ksi tai käsittelemään Project-X:llä.
« Viimeksi muokattu: 09.08.12 - klo:18.49 kirjoittanut nm »

Postimies

  • Käyttäjä
  • Viestejä: 2644
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #13 : 09.08.12 - klo:20.24 »

-filter_complex vaatii ffmpegin tai libav:n uusimman kehitysversion. 0.10.4:ssä ei vielä ole sitä.

Onpas hankalaa. Nyt ymmärrän miksi jäi aikoinaan kesken..
kääntelin ffmpeg hätäsesti (git versio - eli suht tuore)

lyhyellä testi pätkällä - ffmpeg ajetaan käännöskansiosta - en asentanut
demux $ ../bin/ffmpeg/ffmpeg -i 00001.ts
ffmpeg version N-43387-gb7e9eea Copyright (c) 2000-2012 the FFmpeg developers
  built on Aug  9 2012 19:54:28 with gcc 4.5.3 (Gentoo 4.5.3-r2 p1.2, pie-0.4.7)
  configuration: --enable-nonfree --enable-vdpau --enable-libass --enable-libbluray --enable-libmp3lame --enable-libv4l2 --enable-libx264 --enable-libxvid --disable-debug --enable-gpl
  libavutil      51. 67.100 / 51. 67.100
  libavcodec     54. 51.100 / 54. 51.100
  libavformat    54. 22.103 / 54. 22.103
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter     3.  7.100 /  3.  7.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[mpegts @ 0x2567240] max_analyze_duration 5000000 reached at 5016000
[mpegts @ 0x2567240] PES packet size mismatch
    Last message repeated 1 times
Input #0, mpegts, from '00001.ts':
  Duration: 00:00:24.13, start: 26916.340456, bitrate: 2883 kb/s
  Program 132
    Stream #0:0[0x204]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 15000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x2b2](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16, 224 kb/s
    Stream #0:2[0x2b6](dut): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16, 160 kb/s
    Stream #0:3[0xfbb](fin): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
At least one output file must be specified

yritetään suorittaa

 ../bin/ffmpeg/ffmpeg -i 00001.ts -filter_complex '[#0xfbb] setpts=PTS+1/TB ; [0x204] overlay' -sn -map '#0x2b2' output.mkv


eikä vaan toimi....tulostuu

ffmpeg version N-43387-gb7e9eea Copyright (c) 2000-2012 the FFmpeg developers
  built on Aug  9 2012 19:54:28 with gcc 4.5.3 (Gentoo 4.5.3-r2 p1.2, pie-0.4.7)
  configuration: --enable-nonfree --enable-vdpau --enable-libass --enable-libbluray --enable-libmp3lame --enable-libv4l2 --enable-libx264 --enable-libxvid --disable-debug --enable-gpl
  libavutil      51. 67.100 / 51. 67.100
  libavcodec     54. 51.100 / 54. 51.100
  libavformat    54. 22.103 / 54. 22.103
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter     3.  7.100 /  3.  7.100
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[mpegts @ 0x15dc240] max_analyze_duration 5000000 reached at 5016000
[mpegts @ 0x15dc240] PES packet size mismatch
    Last message repeated 1 times
Input #0, mpegts, from '00001.ts':
  Duration: 00:00:24.13, start: 26916.340456, bitrate: 2883 kb/s
  Program 132
    Stream #0:0[0x204]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 15000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x2b2](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16, 224 kb/s
    Stream #0:2[0x2b6](dut): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16, 160 kb/s
    Stream #0:3[0xfbb](fin): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Invalid file index 516 in filtergraph description [#0xfbb] setpts=PTS+1/TB ; [0x204] overlay.



testiaineistona ollut 00001.ts näkyy VLC:ssä hyvin. Myös tekstit. Talletettu vdr-1.7.25 ./configure vaatii lisää optioita? Nyt oli liput --enable-nonfree --enable-vdpau  --enable-libass  --enable-libbluray --enable-libmp3lame --enable-libv4l2  --enable-libx264 --enable-libxvid --disable-debug  --enable-gpl

edit. tuossa muuttuu fontti jossain..
en löytänyt syytä tässä uusiksi se tärkein virhe ilm.

invalid file index 516 in filtergraph description [#0xfbb] setpts=PTS+1/TB ; [0x204]
« Viimeksi muokattu: 09.08.12 - klo:20.30 kirjoittanut Postimies »

nm

  • Käyttäjä
  • Viestejä: 16432
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #14 : 10.08.12 - klo:08.24 »
Koodia: [Valitse]
Invalid file index 516 in filtergraph description [#0xfbb] setpts=PTS+1/TB [sub] ; [0x204] [sub] overlay.

Tunnuksesta [0x204] puuttuu ristikkomerkki: [#0x204].

Postimies

  • Käyttäjä
  • Viestejä: 2644
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #15 : 10.08.12 - klo:16.27 »
Tunnuksesta [0x204] puuttuu ristikkomerkki: [#0x204].

Pahus kun en huomannut, vaikka leikkelin ja liimailin mielestäni tarkasti..

Aloin kokeilemaan jo toista menetelmää. http://www.linuxtv.fi/viewtopic.php?f=12&t=4702
Sain mielestäni aika hyvät tekstit... Nyt on pakkautumassa x264:llä koko illan leffa.
Kunhan valmistuu teen siitä matroskan ja testaan miten blu-ray soitin sitä näyttää.
Mitenkäs Project X mp2 ääni muuttuu helpoiten ac3. Pitää tarkistaa jostain, huoliiko jotain
muuta formaattia.

nm

  • Käyttäjä
  • Viestejä: 16432
    • Profiili
Vs: Videon pakkaus, ilman suoritinta (CPU)
« Vastaus #16 : 10.08.12 - klo:17.35 »
Mitenkäs Project X mp2 ääni muuttuu helpoiten ac3.

ffmpeg -i input.mp2 -vn -acodec ac3 -ab 192k output.ac3