Kirjoittaja Aihe: Videon kuvanopeuden puolittaminen  (Luettu 9508 kertaa)

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Videon kuvanopeuden puolittaminen
« : 31.12.15 - klo:20.11 »
Totesin ettei vanhan Intel Atomin (jotain niitä ensimmäisiä) nopeus riitä maikkarin HD-lähetysten katsomiseen, joten ajattelin jos saisin tehtyä sille kelvollisen version. Kone tuntuu jaksavan melkein toistaa videon, mutta nytkähtelee välillä. MTV3 HD:n lähetykset näkyvät olevan 720p@50fps, mutta ohjelmahan ei todennäköisesti ole 50 kuvaa sekunnissa vaan ehkä vain 24, joten tuntuisi luonnolliselta tehdä sille jotain. Ajattelin, että yksinkertaisin olisi varmaan pudottaa puolet kuvista pois. Voiko tämän tehdä jotenkin avconv:lla tai handbrakella komentoriviltä? Voisin laittaa palvelimen muuntamaan kerralla koko kauden tv-sarjasta. Palvelimella on Ubuntu Server 14.04 LTS ja joku AMD:n tuplaydin suorittimena, vaikkei se lienekään olennaista kun se saa jäädä muuntamaan sitä pitemmäksikin aikaa. Alla on jotain tietoja videosta (katsoin vain mitä avconv -i sanoo, en tiedä kertooko itse ohjelmasta mitään).
Koodia: [Valitse]
Input #0, mpegts, from 'ohjelma.mpg':
  Duration: 13:07:24.57, start: 51924.107356, bitrate: 705 kb/s
  Program 3291
    Metadata:
      service_name    : MTV3 HD
      service_provider: MTV OY
    Stream #0.0[0xcdc]: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0.1[0xcdd](fin): Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
    Stream #0.2[0xcde](fin): Subtitle: [6][0][0][0] / 0x0006
    Stream #0.3[0xcdf](fin): Subtitle: dvbsub
    Stream #0.4[0xce3](swe): Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
Tuon voisi tunkea vaikka matroskaan ja laittaa äänen ja tekstit sellaisenaan mukaan, kunhan videon saisi kevyemmäksi. libx264 lienee ihan hyvä koodekki, koska koneessa ei kuitenkaan ole kummoista rautatukea millekään videolle.

En tiedä miten käy, jos tuon laittaa suoraan avconville (ffmpeg) tai handbrakelle vai pitäisikö tuo ajaa ensin ProjectX:n läpi tai vastaavaa. Enpä ole sitäkään käyttänyt pitkään aikaan ja sitten joutunee skriptailemaan vähän enemmän. Signaali lienee ihan hyvälaatuista, mutta kyllä tuolta virheitäkin löytyy.

Myöhemmin olisi tarvetta muuntaa myös Ylen HD-lähetyksiä sellaisiksi, että ne näkyvät myös näillä tehottomimmillakin koneilla. Yle HD:n video on 1080p, mutta kuvanopeutta en muista. Veikkaisin kyllä sen olevan 24 tai 25 ruutua sekunnissa. Olen kyllä vähän haaveillut, että vaihtaisi tuohon Atom-koneeseen wlan-kortin paikalle purkukortin, mutta taitaa CrystalHD:lla olla vähän ajuriongelmia nykyään. Wlanin voisi sitten pistää USB:llä kiinni.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

Cultor

  • Käyttäjä
  • Viestejä: 177
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #1 : 01.01.16 - klo:16.17 »
Tuo bitrate näyttää perin oudolta, jos tuon kokoisessa videossa olisi noin pieni (bitrate: 705 kb/s), se olisi aivan kuraa. Oletko kokeillut pakata uudelleen mp4-säiliöön?
Koodia: [Valitse]
ffmpeg -i ohjelma.mpg -acodec copy -vcodec copy -f mp4 ohjelma.mp4
Vertailuksi K Movie Player (ffplay) näyttää saman kokoisesta videosta. KSV Adobe HDS Downloader'illä tallennettu flv on pakattu ffmpeg'illä mp4-säiliöön.
Koodia: [Valitse]
Playing file : Downton_Abbey-6-09.mp4 [1/1]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x156bf80] multiple edit list entries, a/v desync might occur, patch welcome
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Downton_Abbey-6-09.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.19.104
  Duration: 00:48:05.78, start: 0.000000, bitrate: 2701 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2567 kb/s, 25 fps, 25 tbr, 16k tbn, 50 tbc
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, s16, 127 kb/s

Kokonaisbitrate saattaa mennä metsään, kun ohjelman näkemä videon pituus on mitä sattuu.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #2 : 01.01.16 - klo:16.42 »
Tuo bitrate näyttää perin oudolta, jos tuon kokoisessa videossa olisi noin pieni (bitrate: 705 kb/s), se olisi aivan kuraa. Oletko kokeillut pakata uudelleen mp4-säiliöön?
Koodia: [Valitse]
ffmpeg -i ohjelma.mpg -acodec copy -vcodec copy -f mp4 ohjelma.mp4

No tuo tieto tuskin on kovinkaan oikea. Kyseessä on noin tunnin video (TV-sarjan jakso) ja kokoa 3,9 gigaa, joten siitä voi laskea karkeaa keskiarvoa.

Ongelmahan oli siis siinä ettei tuo Intel Atom jaksa toistaa tuota alkuperäistä videota. Arveletko, että mp4-koodekin käyttö ilman mitään muita säätöjä helpottaisi?

Mietin kyllä sitäkin, että mikäli nuo videot ovat aivan turhaan 50 fps, niin voisihan sitä ajatella pakkaavansa ne uudestaan toimivampaan muotoon ihan säilytystäkin varten. Jos vaikka saisi vähän säästettyä kiintolevytilassa.

Muokkaus: VLC kertoo ohjelman bittinopeudeksi noin 8000 kb/s. Kokeilin tehdä tuon muunnoksen ja totta kai se antaa oikeamman tiedon pituudesta ja laadusta:
Koodia: [Valitse]
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'ohjelma.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf54.20.4
  Duration: 01:07:00.98, start: 0.000000, bitrate: 7555 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 7292 kb/s, 50 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0.1(fin): Audio: mp2, 48000 Hz, stereo, s16p, 255 kb/s
Tästä tosin tippui tekstitykset pois ja ne olisi kiva olla ulkomaalaisessa sarjassa, vaikka englantia ja ruotsia (ainakin periaatteessa) osaankin. Kuvasta tuli myös melkoisen paljon pehmeämpi eli varmaan joku x264:n säätö auttaisi siihen. Muokkaus: Eikä tullut. Eihän tuo tee edes muunnosta. Television HD vaan on niin kuraa. :D
« Viimeksi muokattu: 01.01.16 - klo:16.57 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #3 : 01.01.16 - klo:16.55 »
Totesin ettei vanhan Intel Atomin (jotain niitä ensimmäisiä) nopeus riitä maikkarin HD-lähetysten katsomiseen, joten ajattelin jos saisin tehtyä sille kelvollisen version. Kone tuntuu jaksavan melkein toistaa videon, mutta nytkähtelee välillä. MTV3 HD:n lähetykset näkyvät olevan 720p@50fps, mutta ohjelmahan ei todennäköisesti ole 50 kuvaa sekunnissa vaan ehkä vain 24, joten tuntuisi luonnolliselta tehdä sille jotain.

Alkuperäinen elokuva tai isomman budjetin ulkomainen tv-sarja on usein taltioitu nopeudella 24 kuvaa/s, mutta eurooppalaisissa PAL-lähetyksissä se on nopeutettu 25 kuvaan/s. (Video toistetaan nopeammin ja ääni venytetään ja uudelleennäytteistetään vastaavassa suhteessa.)

Jos haluat keventää toistovaatimuksia, 720p50-lähetyksen tapauksessa on tosiaan helpointa puolittaa kuvanopeus 25 kuvaan/s skippaamalla joka toinen frame. Tällöin ei myöskään menetetä alkuperäistä kuvainformaatiota, jos kyseessä on 25p- tai nopeutettu 24p-lähdemateriaali, joista on tehty 50p:tä monistamalla jokainen frame. Natiivin 50p-videon tapauksessa toki menetetään liikkeen sulavuutta.

Operaatio onnistuu helposti kertomalla ffmpegille tai avconville haluttu kohdekuvanopeus parametrilla -r 25. Jos muutat kuvanopeuden johonkin muuhun kuin puoleen alkuperäisestä, seurauksena on ylimääräistä nykimistä, koska frameja pudotetaan epäsäännöllisemmin.

Koodia: [Valitse]
avconv -i ohjelma.mpg -acodec copy -vcodec libx264 -crf 20 -preset slow -r 25 muunnettuohjelma.mkv

Pakattaessa x264:llä, parametri -crf 20 valitsee laadun (23 on keskinkertainen laatu, 20 hyvä, 18-16 erinomainen). Esivalinta -preset slow vaikuttaa pakkauksen suoritusaikaan. Yleensä järkevät presetit ovat medium (oletus), slow ja slower, mutta jos halutaan vain pakata nopeasti välittämättä tiedoston koosta, fast tai faster voi olla perusteltu valinta.

Jos CRF pidetään vakiona, nopeampi preset tuottaa isomman tiedoston ja hitaampi preset tuottaa pienemmän tiedoston. Vastaavasti jos preset pidetään vakiona, pienempi (laadukkaampi) CRF-arvo tuottaa isomman tiedoston ja suurempi arvo tuottaa pienemmän tiedoston. Arkistointia varten suosittelen laatuasetusta -crf 20 ja vähintään -preset mediumia. Hitaammalla presetillä saa pienemmän tiedostokoon, mutta aikaa kuluu huomattavasti enemmän. Omalla Core 2 Q9550 -neliydinprosessorillani -preset medium pakkaa 1280x720-videota nopeudella 25 fps, kun taas slower toimii nopeudella 10 fps. Veryslown nopeus on 5 fps. Eri presetien pakkaussuhdetta ei voi ihan suoraan verrata toisiinsa, koska preset vaikuttaa jonkin verran myös laatuun vaikka CRF pidettäisiin testeissä vakiona. Veryslow tuottaa keskimäärin n. 15 - 20 % pienempiä tiedostoja kuin medium, jos laatu mitataan ja vakioidaan.

Lisää aiheesta: https://trac.ffmpeg.org/wiki/Encode/H.264


En tiedä miten käy, jos tuon laittaa suoraan avconville (ffmpeg) tai handbrakelle vai pitäisikö tuo ajaa ensin ProjectX:n läpi tai vastaavaa.

ffmpeg/libav sietää virheitä hyvin, ja uudelleenpakkauksessa ne poistuvat videosta. DVB-tekstitykset voivat vaatia ProjectX-käsittelyä, jos haluat muuntaa ne johonkin yhteensopivampaan formaattiin (vobsub tai PGS). Muuten joudut käyttämään MPEG-TS-formaattia, joka aiheuttaa n. 2-3 %:n overheadin Matroskaan verrattuna.


Myöhemmin olisi tarvetta muuntaa myös Ylen HD-lähetyksiä sellaisiksi, että ne näkyvät myös näillä tehottomimmillakin koneilla. Yle HD:n video on 1080p, mutta kuvanopeutta en muista. Veikkaisin kyllä sen olevan 24 tai 25 ruutua sekunnissa.

YLE käyttää 1080i25-formaattia. Elokuvat ja useimmat sarjat lähetetään kyllä käytönnössä 25p:nä ja ne voi pakata suoraan. Jotkut lähetykset voivat olla lomitettuja tai muutan kelvottomasti skaalattuja, jolloin tarvitaan lisäprosessointia. FFmpegin yadif ja mcdeint -suotimilla pääsee alkuun. Parasta lomituksenpoistoa saa AviSynthin QTGMC:llä, mutta mcdeintin tavoin se on erittäin hidas. Jos tällaiselle laadukkaammalle käsittelylle on tarvetta, suoritintehoa pitäisi hankkia enemmän.

On kyllä surkuhupaisaa, että Ylen lähetyspuolella SD-videot skaalataan HD:ksi jollain nearest-neighbour-roskasuotimella, ja sitten vastaanottopäässä on käytettävä huipputason liike-estimointia ja suodatuksia, että kuvasta saisi edes joten kuten katselukelpoista. Itse tallennan sekä SD- että HD-lähetykset ohjelmista, joista en etukäteen tiedä, onko kyseessä aito teräväpiirtolähetys vai huonolla skaalauksella pilattu SD-versio. Muuten Ylen teräväpiirtolähetysten laatu on kyllä hyvä ainakin kaapeliverkossa.


Tuo bitrate näyttää perin oudolta, jos tuon kokoisessa videossa olisi noin pieni (bitrate: 705 kb/s), se olisi aivan kuraa. Oletko kokeillut pakata uudelleen mp4-säiliöön?
Koodia: [Valitse]
ffmpeg -i ohjelma.mpg -acodec copy -vcodec copy -f mp4 ohjelma.mp4

No tuo tieto tuskin on kovinkaan oikea. Kyseessä on noin tunnin video (TV-sarjan jakso) ja kokoa 3,9 gigaa, joten siitä voi laskea karkeaa keskiarvoa.

Juu. Ffmpeg ei näytä oikeaa bitratea MPEG-TS-tiedostolle, koska se käsittelee tiedostoa streaminä ja lukee vain alun (ja ehkä lopun). TS:ssä ei ole headeria, josta voisi lukea kokonaiskeston, ja pakettien aikaleimatkin saattavat nollautua ajoittain.


Arveletko, että mp4-koodekin käyttö ilman mitään muita säätöjä helpottaisi?

Pelkkä säiliön vaihtaminen ei auta.
« Viimeksi muokattu: 01.01.16 - klo:17.09 kirjoittanut nm »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #4 : 01.01.16 - klo:17.05 »
Totesin ettei vanhan Intel Atomin (jotain niitä ensimmäisiä) nopeus riitä maikkarin HD-lähetysten katsomiseen, joten ajattelin jos saisin tehtyä sille kelvollisen version. Kone tuntuu jaksavan melkein toistaa videon, mutta nytkähtelee välillä. MTV3 HD:n lähetykset näkyvät olevan 720p@50fps, mutta ohjelmahan ei todennäköisesti ole 50 kuvaa sekunnissa vaan ehkä vain 24, joten tuntuisi luonnolliselta tehdä sille jotain.

Alkuperäinen elokuva tai isomman budjetin ulkomainen tv-sarja on usein taltioitu nopeudella 24 kuvaa/s, mutta eurooppalaisissa PAL-lähetyksissä se on nopeutettu 25 kuvaan/s. (Video toistetaan nopeammin ja ääni venytetään ja uudelleennäytteistetään vastaavassa suhteessa.)

Jos haluat keventää toistovaatimuksia, 720p50-lähetyksen tapauksessa on tosiaan helpointa puolittaa kuvanopeus 25 kuvaan/s skippaamalla joka toinen frame. Tällöin ei myöskään menetetä alkuperäistä kuvainformaatiota, jos kyseessä on 25p- tai nopeutettu 24p-lähdemateriaali, joista on tehty 50p:tä monistamalla jokainen frame. Natiivin 50p-videon tapauksessa toki menetetään liikkeen sulavuutta.

Operaatio onnistuu helposti kertomalla ffmpegille tai avconville haluttu kohdekuvanopeus parametrilla -r 25

Koodia: [Valitse]
avconv -i ohjelma.mpg -acodec copy -vcodec libx264 -crf 20 -preset slow -r 25 muunnettuohjelma.mkv

Koodia: [Valitse]
Input #0, mpegts, from 'S1E01 Kotiinpaluu.mpg':
  Duration: 13:07:24.57, start: 51924.107356, bitrate: 705 kb/s
  Program 3291
    Metadata:
      service_name    : MTV3 HD
      service_provider: MTV OY
    Stream #0.0[0xcdc]: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0.1[0xcdd](fin): Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
    Stream #0.2[0xcde](fin): Subtitle: [6][0][0][0] / 0x0006
    Stream #0.3[0xcdf](fin): Subtitle: dvbsub
    Stream #0.4[0xce3](swe): Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
[libx264 @ 0x227ef00] using SAR=1/1
[libx264 @ 0x227ef00] using cpu capabilities: MMX2 SSE2Slow SlowCTZ
[libx264 @ 0x227ef00] profile High, level 3.1
[libx264 @ 0x227ef00] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.25 aq=1:1.00
Output #0, matroska, to 'S1E01 Kotiinpaluu.mkv':
    Stream #0.0: Video: libx264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=-1--1, 90k tbn, 25 tbc
    Stream #0.1(fin): Audio: mp2, 48000 Hz, stereo, 256 kb/s
    Stream #0.2(fin): Subtitle: ass, 200 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (? -> ass)
Error while opening encoder for output stream #0:2 - maybe incorrect parameters such as bit_rate, rate, width or height
Sarja on tässä tapauksessa Mustamaalattu eli pohjoismaalaista tuotantoa. Näköjään jökkää tekstityksiin, jotka olisi syytä saada mukaan. Eikö Matroska osaa noita tekstityksiä?

Muokkaus: Nyt kun prosessorimurskasta oli puhetta, niin palvelimesta löytyy AMD Athlon(tm) Dual Core Processor 5050e ja tarvittaessa tehokkain mitä löytyy on AMD Phenom(tm) II X4 955 Processor, jota voi myös tunnetusti ylikellottaa 3,8 GHz asti. Joku Intelin i3 tai i5 varmaan auttaisi merkittävästi, mutta päivitykset eivät nyt ole suunnitelmissa ja reaaliaikaiseen muunnokseen ei ole tarvetta.
« Viimeksi muokattu: 01.01.16 - klo:17.13 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #5 : 01.01.16 - klo:17.13 »
Sarja on tässä tapauksessa Mustamaalattu eli pohjoismaalaista tuotantoa. Näköjään jökkää tekstityksiin, jotka olisi syytä saada mukaan. Eikö Matroska osaa noita tekstityksiä?

Matroska ei tue DVB-tekstitystä. Tekstitykset pitää pudottaa pois parametrilla -sn (-scodec none) tai muuntaa ProjectX:n ja BDSup2Subin avulla PGS:ksi.

Minulla on juuri samanlainen tekstitysmuunnosprojekti menossa, kun ajattelin muuntaa ainakin osan TS-tallenteista MKV-tiedostoiksi ja arkistoida sitten Amazon Cloud Driveen. Periaatteessa voisi kyllä ladata TS:t suoraankin, mutta MKV-videoissa hyppiminen toimii selvästi vikkelämmin acd_cli:llä mountatusta pilvikansiosta.
« Viimeksi muokattu: 01.01.16 - klo:17.32 kirjoittanut nm »

Cultor

  • Käyttäjä
  • Viestejä: 177
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #6 : 01.01.16 - klo:17.21 »

Sarja on tässä tapauksessa Mustamaalattu eli pohjoismaalaista tuotantoa. Näköjään jökkää tekstityksiin, jotka olisi syytä saada mukaan. Eikö Matroska osaa noita tekstityksiä?

Näyttää siellä olevan dvbsub tekstitys.
Koodia: [Valitse]
ffmpeg -i ohjelma.mpg -acodec copy -vcodec libx264 -vb 2600k -s 1280x720 -r 25 -vpre libx264-ipod640 -filter_complex "[0:0][0:3]overlay" -sn ohjelma.mp4
Tuon tapaisella loitsulla kokeilisin, ffpreset-file (-vpre libx264-ipod640) tietysti riippuu siitä, mitä on tarjolla.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #7 : 01.01.16 - klo:17.22 »
Sarja on tässä tapauksessa Mustamaalattu eli pohjoismaalaista tuotantoa. Näköjään jökkää tekstityksiin, jotka olisi syytä saada mukaan. Eikö Matroska osaa noita tekstityksiä?

Matroska ei tue DVB-tekstitystä. Tekstitykset pitää pudottaa pois parametrilla -sn (-scodec none) tai muuntaa ProjectX:n ja BDSup2Subin avulla PGS:ksi.

Ok, pitää kokeilla. Kiitos linkistä ja kiitos myös tuostas aiemmasta linksistä H.264-muunnoksen asetuksista.

Laitoin muuntamaan ilman tekstityksiä (preset slow, crf 20) eikä nopeutta kyllä voi hirveästi kehua: ;D
Koodia: [Valitse]
frame=  485 fps=  6 q=25.0 size=    6536kB time=18.00 bitrate=2974.8kbits/s
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #8 : 01.01.16 - klo:17.24 »
Näyttää siellä olevan dvbsub tekstitys.
Koodia: [Valitse]
ffmpeg -i ohjelma.mpg -acodec copy -vcodec libx264 -vb 2600k -s 1280x720 -r 25 -vpre libx264-ipod640 -filter_complex "[0:0][0:3]overlay" -sn ohjelma.mp4
Tuon tapaisella loitsulla kokeilisin, ffpreset-file (-vpre libx264-ipod640) tietysti riippuu siitä, mitä on tarjolla.

Niin joo kuvaan polttaminen on yksi vaihtoehto, jos sietää sellaisen tärvelemisen. ;)

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #9 : 01.01.16 - klo:17.31 »
Näyttää siellä olevan dvbsub tekstitys.
Koodia: [Valitse]
ffmpeg -i ohjelma.mpg -acodec copy -vcodec libx264 -vb 2600k -s 1280x720 -r 25 -vpre libx264-ipod640 -filter_complex "[0:0][0:3]overlay" -sn ohjelma.mp4
Tuon tapaisella loitsulla kokeilisin, ffpreset-file (-vpre libx264-ipod640) tietysti riippuu siitä, mitä on tarjolla.

Niin joo kuvaan polttaminen on yksi vaihtoehto, jos sietää sellaisen tärvelemisen. ;)

Varsinkin englanninkielisissä ohjelmissa nuo on paljon kivempi pitää erillään, kun voi halutessaan katsoa ilman tekstityksiä. Lisäksi katsoja saa sitten valita.

Muokkaus: Taidan antaa tuon muuntaa kymmenisen minuuttia ohjelmaa (siihenkin menee tunti tätä vauhtia) ja katsoa mitä se sai aikaan. Teen sitten vielä kokeeksi samanlaisen muunnoksen nopeammilla asetuksilla.

Muokkaus 2: Nyt on tehty slow, medium ja fast versiot kukin noin 10 minuuttia ohjelman alusta. Pikaisella katselulla en huomannut merkittäviä eroja kuvanlaadussa, mutta otokseni ei tietysti ollut kovin kattava ja tietysti tuo crf oli se millä sitä kuvanlaatua on tarkoitus ohjata. Jostain syystä VLC ei anna siirtyä videossa eteenpäin, joten jotain pitää vielä parantaa. Tosin toistin NFS:n yli, mutta en tiedä miksi se vaikuttaisi, kun alkuperäistä voi kelata. Ehkä se, että lopetin tuon painamalla Ctrl+c vaikutti siihen, en tiedä. Nopeudet näyttivät olevan noin 5, 8 ja 11 fps eli aika hidasta on. Saa yön aikana puolitoista jaksoa muunnettua. ::) Tekstityksiä en ole vielä ehtinyt kokeilemaan, mutta kyllä senkin aika tulee. Tutkitaan. 8)

Muokkaus: Joo Ctrl+c vaikutti. Jos olisin painanut q, niin olisin saanut ehjän tiedoston. Näköjään Phenomilla en saa kuin reilut 20 fps slow-asetuksella ja vajaat 40 fast-asetuksella... Pitäisi varmaa budjetoida uusi emolevy, prossu ja muistit palvelinkoneeseen, jos näitä meinaa tehdä paljon. ;D Saa nähdä. Halvempaa olisi ostaa se purkukortti, jos se vain toimisi. ;)
« Viimeksi muokattu: 01.01.16 - klo:20.20 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ä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #10 : 02.01.16 - klo:18.39 »
Kokeilinpa lisätä tuohon tiedostoon tekstitykset, mutta jokin meni vielä vikaan. Tekstit ovat ihan väärässä ajassa, ehkä siksi että tein muunnoksen ensin avconv:lla (tuo S1E01\ Kotiinpaluu_medium.mkv) ja sitten yritin muxata sen noiden tekstien kanssa. Mitenhän sitä voisi parantaa? Lisäksi tekstit näyttävät vähän rumilta, koska niissä on rosoiset reunat. Toimisiko tuo pgs-muoto paremmin?
Koodia: [Valitse]
mkdir /tmp/muunnos.tmp
cd /tmp/muunnos.tmp/
java -jar ~/.bin/Project-X/ProjectX.jar -ini ~/X.ini -name muunnos -out . -demux /leikattu_polkua/Mustamaalattu/S1E01\ Kotiinpaluu.mpg
sup2sub.sh muunnos muunnos-subs
mkvmerge -o /leikattu_polkua/S1E01\ Kotiinpaluu.mkv /leikattu_polkua/Mustamaalattu/S1E01\ Kotiinpaluu_medium.mkv --language 0:fin muunnos-subs.idx
Tuossa kaikki olennaiset komennot, mutta tuota skriptiä piti vielä vähän korjata, koska BDSup2Sub parametrien muoto oli muuttunut hieman (tulos piti antaa -o-parametrilla).

Näköjään tämä sarja on kuvattu korkeammalla kuvanopeudella, joten välttämättä sen puolitus ei ole paras ainakaan säilömisen kannalta, mutta toisaalta ei tuo äkkiseltään tunnu häiritsevänkään. Tiedän kyllä että joissain muissa sarjoissa on käytetty pienempää kuvanopeutta. Voisi kai tuosta tehdä version jollain pienemmällä tarkkuudellakin (liekkö 576p järkevä?).
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #11 : 03.01.16 - klo:02.13 »
Kokeilinpa lisätä tuohon tiedostoon tekstitykset, mutta jokin meni vielä vikaan. Tekstit ovat ihan väärässä ajassa, ehkä siksi että tein muunnoksen ensin avconv:lla (tuo S1E01\ Kotiinpaluu_medium.mkv) ja sitten yritin muxata sen noiden tekstien kanssa. Mitenhän sitä voisi parantaa? Lisäksi tekstit näyttävät vähän rumilta, koska niissä on rosoiset reunat. Toimisiko tuo pgs-muoto paremmin?

Kyllä. VobSub-muunnoksessa häviää osa sävyistä ja varmaankin myös resoluutio  skaalautuu pienemmäksi. VobSub on tarkoitettu DVD-tekstitysten säilömiseen. Blu-rayn PGS-formaatti on paremmin yhteensopiva teräväpiirtovideon ja -tekstien kanssa.

Tekstityksen ajastusongelma saattaa johtua jostain Project-X:n asetuksesta.
« Viimeksi muokattu: 03.01.16 - klo:02.15 kirjoittanut nm »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #12 : 04.01.16 - klo:16.15 »
Kyllä. VobSub-muunnoksessa häviää osa sävyistä ja varmaankin myös resoluutio  skaalautuu pienemmäksi. VobSub on tarkoitettu DVD-tekstitysten säilömiseen. Blu-rayn PGS-formaatti on paremmin yhteensopiva teräväpiirtovideon ja -tekstien kanssa.
PGS näyttääkin paljon paremmalta. :) Hyvä tietää.

Tekstityksen ajastusongelma saattaa johtua jostain Project-X:n asetuksesta.
Yritin katsella, mikä voisi auttaa, mutta edelleen ihan pielessä. Voiko tuo, että en aja videota ja ääntä ProjectX:n läpi vaikuttaa? ProjectX ei nimittäin tue H.264:ää.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #13 : 04.01.16 - klo:16.36 »
Tekstityksen ajastusongelma saattaa johtua jostain Project-X:n asetuksesta.
Yritin katsella, mikä voisi auttaa, mutta edelleen ihan pielessä. Voiko tuo, että en aja videota ja ääntä ProjectX:n läpi vaikuttaa? ProjectX ei nimittäin tue H.264:ää.

Periaatteessa ei pitäisi vaikuttaa, mutta voisit kokeilla kytkeä myös äänen demuksauksen pois päältä, jotta Project-X ei yritä hyppiä aikajanalla ääniraidan virheiden tai muiden ongelmien vuoksi.

Uusin Project-X:n versio (CVS / 0.91.0.10) tukee myös H.264-demuksausta X.ini-tiedoston asetuksella:

Koodia: [Valitse]
OptionPanel.enableHDDemux=1
Käyttöliittymän puolella tälle ei vielä ole valintaa.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #14 : 04.01.16 - klo:16.44 »
Tekstityksen ajastusongelma saattaa johtua jostain Project-X:n asetuksesta.
Yritin katsella, mikä voisi auttaa, mutta edelleen ihan pielessä. Voiko tuo, että en aja videota ja ääntä ProjectX:n läpi vaikuttaa? ProjectX ei nimittäin tue H.264:ää.

Periaatteessa ei pitäisi vaikuttaa, mutta voisit kokeilla kytkeä myös äänen demuksauksen pois päältä, jotta Project-X ei yritä hyppiä aikajanalla ääniraidan virheiden tai muiden ongelmien vuoksi.
No sen, kuten kaiken muunkin mitä en tarvitse, otin pois päältä. Lokista:
Koodia: [Valitse]
-> PES stream type disabled: Mpg Video
-> PES stream type disabled: Mpg Audio
-> PES stream type disabled: AC3/DTS Audio
-> PES stream type disabled: LPCM Audio
-> PES stream type disabled: Teletext
-> PES stream type disabled: Generic_VBI


Uusin Project-X:n versio (CVS / 0.91.0.10) tukee myös H.264-demuksausta X.ini-tiedoston asetuksella:
Koodia: [Valitse]
OptionPanel.enableHDDemux=1Käyttöliittymän puolella tälle ei vielä ole valintaa.
Ok eli tästä ei ole odotettavissa hyötyä ja joutuu muuntamaan uudestaan, jos meinaa tätä kokeilla. Noh, katsotaan.

Olisiko mahdollista, että tuo kuvanopeuden puolittaminen aiheuttaa sen, että ProjectX:ään tai muxausvaiheeseen pitää tehdä jokin säätö? Sekin tosin tuntuu hassulta.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #15 : 04.01.16 - klo:17.12 »
VLC:llä kokeilemalla voisi etsiä säädöt, joilla tekstityksen saa ajoitettua kohdalleen, jos tarvittava muunnos on lineaarinen. Sitten on vain toivottava, että ilmiö esiintyy samalla tavalla kaikissa tallenteissa. Vastaavat säädöt voi sitten tehdä pysyvästi mkvmergellä.
« Viimeksi muokattu: 04.01.16 - klo:17.14 kirjoittanut nm »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #16 : 04.01.16 - klo:18.21 »
VLC:llä kokeilemalla voisi etsiä säädöt, joilla tekstityksen saa ajoitettua kohdalleen, jos tarvittava muunnos on lineaarinen. Sitten on vain toivottava, että ilmiö esiintyy samalla tavalla kaikissa tallenteissa. Vastaavat säädöt voi sitten tehdä pysyvästi mkvmergellä.

Ei tunnu toimivan. Ensimmäinen tekstitys on 4:00 kohdalla, mutta sen oikea paikka on 5:46. Tällöinhän tuon pitäisi olla kohdallaan jos viivästytän tekstityksiä 106 sekuntia. Kuitenkin saan ne vain katoamaan, jos laitan tuon säädön. Sitten ei ole enää mitään tekstityksiä vähään aikaan. Nähtävästi ne ilmestyvät kunhan tuo viiveaika on kulunut ja ovat ihan sitten kohtuullisen hyvin kohdallaan. Jos siirryn aikajanalla, niin tekstit häviävät taas. Kuitenkin tulevat tuon viiveen jälkeen takaisin ja ovat edelleen kohdalla. Kokeilin katsomalla pätkän alusta ja lopusta eli vaikuttaisi siltä että ainoa ongelma on etteivät tekstit ala oikeasta kohdasta.

Minkäköhän merkin tuo nyt hukkaa, kun nuo tekstit vaikuttavat vain siirtyneen väärään paikkaan? Voihan tämä olla vain osaamattomuuttani tuon ProjectX:n kanssa.

Muokkaus: Jaha, säädin vähän projectx:n kanssa ja nyt tekstit tulevat yhtenä pötkönä. Ei hyvä tämäkään. :D
Laitoin liitteeksi lokin ja X.ini:n tuosta 106 sekuntia heittävästä ajosta, jos niistä olisi mitään hyötyä.

Muokkaus 2: Noni. Eli video pitää demuksata, mutta sen voi heittää pois. Lisäsin/vaihdoin siis nämä rivit:
Koodia: [Valitse]
ExportPanel.Streamtype.MpgVideo=1
OptionPanel.enableHDDemux=1
Nyt ainakin äkkiseltään näyttäisi tekstitykseyt olevan kohdallaan. Tuota videota en käyttänyt siinä lopullisessa tuotoksessa vaan muksasin sen jo aiemmin muunnetusta matroskasta.
« Viimeksi muokattu: 04.01.16 - klo:19.33 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ä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #17 : 08.01.16 - klo:16.07 »
Nyt tulee tämmöisiä virheitä, kun muunnan tekstejä:
Koodia: [Valitse]
convert.im6: insufficient image data in file `muunnos_st00102p1.bmp' @ error/bmp.c/ReadBMPImage/930.
convert.im6: no images defined `muunnos-subs_0103.png' @ error/convert.c/ConvertImageCommand/3044.
Tuosta pääsee eroon, kun avaa kyseisen tiedoston GIMPissä ja exporttaa takaisin vanhan päälle, tosin silloin tulee valitus, mutta ainakaan ei pysähdytä virheeseen. Tämänkin voisi varmaan tehdä komentoriviltä. Tällaisen virheen se tulostaa kun on korvannut tuon tiedoston ja käskee muuntaa tekstit pgs:ksi:
Koodia: [Valitse]
convert.im6: Ignoring attempt to set chromaticity value exceeding 21474.83 `muunnos-subs_0103.png' @ warning/png.c/MagickPNGWarningHandler/1754.
convert.im6: Invalid cHRM blue point `muunnos-subs_0103.png' @ warning/png.c/MagickPNGWarningHandler/1754.
convert.im6: Ignoring attempt to set cHRM RGB triangle with zero area `muunnos-subs_0103.png' @ warning/png.c/MagickPNGWarningHandler/1754.
DONE

Tosin noille tiedostoille yhteistä on, että niissä tekstit ovat vinossa ja alkavat ja loppuvat väärästä kohdasta. Ilmeisesti sisältö löytyy, mutta se on vähän pielessä. Näitä tuli nyt vastaan kolme kappaletta. Vinoja tekstejä oli myös kahdessa ensimmäisessä muuntamassani ohjelmassa, mutta niissä se ei aiheuttanut virhettä tai ainakaan estänyt toimintaa vaan tuo vinossa oleva teksti oli lopullisessa ohjelmassakin. Laitan liitteeksi yhden noita tiedostoista jos ketään kiinnostaa. Pakkasin sen gzip:llä, mutta osannette purkaa.
« Viimeksi muokattu: 08.01.16 - klo:16.17 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

nm

  • Käyttäjä
  • Viestejä: 16430
    • Profiili
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #18 : 08.01.16 - klo:17.03 »
Nyt tulee tämmöisiä virheitä, kun muunnan tekstejä:
Koodia: [Valitse]
convert.im6: insufficient image data in file `muunnos_st00102p1.bmp' @ error/bmp.c/ReadBMPImage/930.
convert.im6: no images defined `muunnos-subs_0103.png' @ error/convert.c/ConvertImageCommand/3044.
Tuosta pääsee eroon, kun avaa kyseisen tiedoston GIMPissä ja exporttaa takaisin vanhan päälle, tosin silloin tulee valitus, mutta ainakaan ei pysähdytä virheeseen. Tämänkin voisi varmaan tehdä komentoriviltä. Tällaisen virheen se tulostaa kun on korvannut tuon tiedoston ja käskee muuntaa tekstit pgs:ksi:
Koodia: [Valitse]
convert.im6: Ignoring attempt to set chromaticity value exceeding 21474.83 `muunnos-subs_0103.png' @ warning/png.c/MagickPNGWarningHandler/1754.
convert.im6: Invalid cHRM blue point `muunnos-subs_0103.png' @ warning/png.c/MagickPNGWarningHandler/1754.
convert.im6: Ignoring attempt to set cHRM RGB triangle with zero area `muunnos-subs_0103.png' @ warning/png.c/MagickPNGWarningHandler/1754.
DONE

ImageMagick ei tykkää purkaa viallisia tiedostoja tietoturvariskien vuoksi.

Yksi vaihtoehto automaattisiin muunnoksiin on ffmpeg/avconv, mutta niistäkin tarvitset suhteellisen tuoreet versiot. ffmpeg 2.8.4:llä tuo esimerkkikuva ainakin muuntui, ja tulos on hieman parempi kuin Gimpillä.

Koodia: [Valitse]
ffmpeg -i muunnos_st00102p1.bmp testi.png

Näyttääkö VLC nuo samat tekstit oikein alkuperäisessä tallenteessa? Vika voi johtua korruptoituneesta tekstitysdatasta, tai sitten Project-X:n DVB-tekstitysten käsittelyssä on bugi, joka aiheuttaa ongelmia. Periaatteessahan sen ei pitäisi tuottaa viallisia BMP-tiedostoja, vaikka alkuperäinen tekstitys olisi rikki.
« Viimeksi muokattu: 08.01.16 - klo:17.09 kirjoittanut nm »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Videon kuvanopeuden puolittaminen
« Vastaus #19 : 15.01.16 - klo:22.14 »
Hmmh, mielenkiintoista:
Koodia: [Valitse]
$ convert muunnos_st00036p1.bmp muunnos_testi.png
convert.im6: insufficient image data in file `muunnos_st00036p1.bmp' @ error/bmp.c/ReadBMPImage/930.
convert.im6: no images defined `muunnos_testi.png' @ error/convert.c/ConvertImageCommand/3044.
$ avconv -i muunnos_st00036p1.bmp muunnos_testi.png
avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[bmp @ 0xd1d0e0] not enough data (44268 < 44472)
Input #0, image2, from 'muunnos_st00036p1.bmp':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: bmp, pal8, 433x102, 25 tbn
Output #0, image2, to 'muunnos_testi.png':
  Metadata:
    encoder         : Lavf54.20.4
    Stream #0.0: Video: png, pal8, 433x102, q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (bmp -> png)
Press ctrl-c to stop encoding
[bmp @ 0xd1d0e0] not enough data (44268 < 44472)
Error while decoding stream #0:0
frame=    0 fps=  0 q=0.0 Lsize=       0kB time=10000000000.00 bitrate=   0.0kbits/s   
video:0kB audio:0kB global headers:0kB muxing overhead -nan%
$ avconv -i muunnos_st00035p1.bmp muunnos_testi.png
avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, image2, from 'muunnos_st00035p1.bmp':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: bmp, pal8, 488x102, 25 tbn
Output #0, image2, to 'muunnos_testi.png':
  Metadata:
    encoder         : Lavf54.20.4
    Stream #0.0: Video: png, pal8, 488x102, q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (bmp -> png)
Press ctrl-c to stop encoding
frame=    1 fps=  0 q=0.0 Lsize=       0kB time=0.04 bitrate=   0.0kbits/s   
video:5kB audio:0kB global headers:0kB muxing overhead -100.000000%
$ convert muunnos_st00035p1.bmp muunnos_testi.png
$
Tuo  muunnos_st00036p1.bmp on siis se rikkinäinen ja  muunnos_st00035p1.bmp on yksi toimivista. Molemmat liitteenä.

Muokkaus: Hei! Alkuperäisessä videossa ainakin yhdet vinot tekstit olivat vielä kunnossa ainakin VLC:n mielestä! Eli jotain hämärää tässä on (siis PrjojectX:ssä on).
« Viimeksi muokattu: 15.01.16 - klo:22.20 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.