GNU/Linux >> Znalost Linux >  >> Linux

FFmpeg nekopíruje všechny audio streamy

FFmpeg má možnost mapovat všechny streamy na výstup, musíte použít volbu -map 0 k mapování všech toků od vstupu k výstupu.

V plném řádku to může vypadat takto:

ffmpeg -i in.mp4 -c copy -map 0 out.mp4

Další informace najdete v dokumentaci k výběru streamu a v -map možnost.


Zřejmě je to populární otázka, takže své řešení zveřejňuji jako odpověď (dříve to byla odpověď na komentář), aby to ostatní viděli.

Z tohoto lístku se mi podařilo najít správnou syntaxi. Správná syntaxe je:

ffmpeg -i in.mp4 -vcodec copy -c:a copy -map 0:0 -map 0:1 -map 0:2 out.mp4

Tím se zkopírují všechny 3 streamy.


Dobře, četl jsem dost hluboko do ffmpeg manuálovou stránku a našel jsem toto, které by mělo být užitečné:

Všimněte si, že v současné době může každý výstupní tok obsahovat pouze kanály z jednoho vstupního toku; nemůžete například použít "-map_channel" topick více vstupních audio kanálů obsažených v různých proudech (ze stejných nebo různých souborů) a sloučit je do jednoho výstupního proudu. V současné době tedy není možné například převést dva samostatné mono streamy do jediného stereo streamu. Rozdělení stereo streamu do dvou jednokanálových mono streamů je však možné.

Pokud tuto funkci potřebujete, možným řešením je použít amergefilter. Pokud například potřebujete sloučit médium (zde input.mkv) se 2 mono audio streamy do jednoho audio streamu stereo kanálu (a zachovat video stream), můžete použít následující příkaz:

ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv

Možná si budete chtít přečíst a experimentovat s pokyny manuálové stránky man ffmpeg-filters abyste pochopili, do jaké úrovně složitosti se dostáváte při pojmenovávání kanálů a očekávaného výstupu.

[Edit:Jak poznamenal Mulvya, toto odpovídá na otázku, ale nebyla to úplně původní otázka plakátu.]


Linux
  1. Linux – Jak streamovat místní video do webové kamery pomocí Ffmpeg?

  2. Cpu je zdarma, ale Bash Script nevyužívá všechny zdroje CPU?

  3. Qt Audio Engine není v Ubuntu SDK?

  1. SMPlayer – bezplatný přehrávač médií pro všechny formáty

  2. Jak nahrávat zvuk pomocí ffmpeg na linuxu?

  3. Proč je Bash všude (ve většině, ne-li ve všech distribucích Linuxu)?

  1. Jak prohodím první a druhý zvukový tok v MKV v systému založeném na Linuxu?

  2. Proč yum updateinfo nezobrazuje všechny aktualizace?

  3. ERROR:cuvid požadováno, ale ne všechny závislosti jsou splněny:cuda/ffnvcodec