Potřeboval bych poradit s ffmpegem; žádný lepší klub jsem nenašel, tak to zkusím tady, uvidíme, zda sem ještě někdo chodí...
Problém: přenášel jsem dabing z filmu v SD do filmu v HD. Výsledek vypadá OK na první pohled a VLC jej přehrává bez nejmenších obtíží; nicméně Plex si s tím bohužel neporadí, ten nový zvuk v něm po pár minutách vypadne a je ticho (přepnutí na originální zvuk zvučí normálně, přepnutí zpět na dabing — opět ticho). Jeden plexový klient (konkrétně v Samsungu) mi nad tím dokonce jednou zamrz' :(
Dabing bylo potřeba před připojením kapku posunout a zpomalit 24/25, použil jsem tento postup:
1. ffmpeg -i dubbedSD.mp4 -c copy -vn dubbed.mp3 # ten dabovaný zvuk je MP3, nekonvertuji formát
2. ffmpeg -i dubbed.mp3 -ss 00:00:00.99 -codec copy shifted.mp3 # dabing začínal až na 0.99
3. ffmpeg -i shifted.mp3 -filter:a "atempo=0.959" -vn slowed.mp3 # zpomalení 24/25
4. ffmpeg -i origHD.mkv -itsoffset 10.10 -i slowed.mp3 -c copy -map 0 -map 1 -metadata:s:3 language=cze combined.mkv # v HD je odpovídající místo začátku na 10.10
Jedna kapku podezřelá věc, jež by s tím možná mohla souviset: když se na
combined podívám přes ffprobe, ohlásí mi u toho dabovaného streamu
[matroska,webm @ 0x7f8b1d008200] Could not find codec parameters for stream 3 (Audio: mp3 (mp3float), 44100 Hz, 2 channels, fltp): unspecified frame size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Úplně nevím, co s tím. Když použiji
ffprobe -analyzeduration 500M -probesize 500M, je to v pořádku, ale to je mi málo platné z hlediska těch přehrávačů. Zkusil jsem nastavit vysoké
analyzeduration/probesize v krocích 3/4 výše, ale to nepomohlo. Pro ten originál tam žádná smysluplná metadata taky nevidím:
% ffprobe dubbedSD.mp4
... ...
Stream #0:1(cze): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 160 kb/s (default)
Metadata:
handler_name : SoundHandler
231
ten
handler_name jsem ze zoufalství pro úplnou jistotu taky zkusil nastavit, ale také to nepomohlo.
Rozumí tomu někdo z přítomných a vidí, co jsem udělal blbě, a jak vytvořit správné řešení, aby si s tím poradil i ten Plex? Dík!