Tuo toinen tarjoamasi rimpsu antoi lupaavan tuloksen. Kohteena on Tanskalaisen maajussin eräs jakso, jonka nimesin uudestaan. Video pyöri pätkimättä ja teksti oli kohdallaan. Kuva vaan oli välillä "vaakaraidallinen", joku limitysseikka?
Joo, Tanskalainen maajussi lähetetään lomitettuna (interlaced), kuten myös suurin osa uutis- ja ajankohtaisohjelmista ja urheilusta. Dokumentit saattavat olla lomitettua tai progressiivista videota, ja elokuvat ja fiktiiviset sarjat ovat yleensä progressiivisia, koska ne on kuvattu filmikameroilla tai filmikuvausta jäljittelevillä digitaalikameroilla.
Lomituksen voi enkoodata sellaisenaan (-x264opts interlaced=1), mutta Androidissa harva soitin osaa toistaa lomitettua videota kunnolla, vaikka lomituksenpoisto onkin kytkettävissä päälle joissain soittimissa. Paremman lopputuloksen saat poistamalla lomituksen ffmpegillä samalla kun poltat tekstityksen videoon. FFmpegin paras, kohtuullisen nopeasti toimiva lomituksenpoistosuodatin on yadif, jonka voi yhdistää aiempaan suodatinkompleksiin esimerkiksi näin:
fmpeg -i video.ts -filter_complex "[0:v]yadif=1[pvid];[0:s:m:language:fin][pvid]scale2ref[sub][vid];[vid][sub]overlay[v]" -map "[v]" -map 0:a -c:a copy -c:v libx264 -preset veryfast -crf 24 -loglevel error -stats video.mp4
Tämä tuottaa lomitetusta 1080i25-videosta progressiivisen 1080p50-videon. Jos nykivämpi 25p-kuvanopeus riittää, voit käyttää yadif=1 -suodattimen sijaan yadif=0 -suodatinta.
Virheilmoitusta kyllä tuli, mielivaltainen pätkä malliksi:
[graph 0 input from stream 0:3 @ 0x557946b24fc0] Changing video frame properties on the fly is not supported by all filters.
[graph 0 input from stream 0:3 @ 0x557946b24fc0] filter context - w: 1920 h: 1080 fmt: 28, incoming frame - w: 720 h: 576 fmt: 28 pts_time: 277.244
[graph 0 input from stream 0:3 @ 0x557946b24fc0] Changing video frame properties on the fly is not supported by all filters.
Näyttää tosian herjaavan tuota joissain tapauksissa. Liittynee jotenkin scale2refin toimintaan lomitetulla videolla. En keksi varsinaista syytä tai korjausta, mutta tekstitys näyttää joka tapauksessa skaalautuvan oikein, ja lopputulos on muutenkin OK. Nämä herjat saa piiloon logleveliä laskemalla:
-loglevel error -statsmaajussi.ts: corrupt decoded frame in stream 0
maajussi.ts: corrupt decoded frame in stream 0e=00:04:36.25 bitrate=4319.4kbits/s dup=35 drop=0 speed=0.863x
Tällaisia ilmoituksia voi tulla, jos tallenteessa on huonosta signaalista tai vastaanotosta johtuvia virheitä. Saattaa ilmentyä pieninä katkoina kuvassa ja äänessä.
Kaikenlaisten kokeilujen jälkeen on mieltä kalvanut seikka, ettei digiboksin .ts-tallenne ole aivan "virallinen" ja siinä on jotain alussa(?) olevia tietoja puutteellisina tms. Eri ohjelmat ovat tekstistä herjanneet, ettei sopivaa koodekkia löydy.
MPEG-TS ja etenkin DVB-tekstitys ei ole tyypillinen formaatti tietokone- ja mobiililaitteissa tai internetissä, joten monilla soittimilla on vaikeuksia niiden kanssa. Se ei välttämättä tarkoita, että tallenteessa olisi sinänsä vikaa.