Zkoušel jsem kódovat audio stream do AAC s režimem bitové rychlosti proměnné – řídil jsem se radou z Nastavení FFmpeg VBR a v tomto původním příkazu jsem změnil původní možnost -b:a 128k
na -q:a 1.3
ffmpeg -channel_layout stereo -i sc2.avs -b:a 128k -ar 24000 -ac 2 sc2.mp4
Ale přesto jsem získal konstantní zvukový datový tok.
Výstup z MediaInfo:
Audio ID : 2 Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Codec ID : mp4a-40-2 Duration : 1 min 26 s Duration_LastFrame : -29 ms Bit rate mode : Constant Bit rate : 119 kb/s Channel(s) : 2 channels Channel layout : L R Sampling rate : 24.0 kHz Frame rate : 23.438 FPS (1024 SPF) Compression mode : Lossy Stream size : 1.23 MiB (8%) Default : Yes Alternate group : 1
Any Video Converter (stará verze 3.5.8), který interně používá FFmpeg, převede stejný vstup do režimu VBR:
Audio ID : 2 Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Codec ID : mp4a-40-2 Duration : 1 min 26 s Bit rate mode : Variable Bit rate : 75.3 kb/s Maximum bit rate : 142 kb/s Channel(s) : 2 channels Channel layout : L R Sampling rate : 24.0 kHz Frame rate : 23.438 FPS (1024 SPF) Compression mode : Lossy Stream size : 778 KiB (9%) Language : English Encoded date : UTC 2019-12-19 13:30:13 Tagged date : UTC 2019-12-19 13:30:13
Jak dosáhnout zvukového výstupu VBR?
(Potřebuji to kvůli funkci Dissolve()
ve zdrojovém souboru AviSynth produkuje hrozný zvuk pro CBR, zatímco to “ je to příjemné pro zvukový výstup Any Video Converter VBR.)
Odpověď
Acco Při rdingu na wiki je pravděpodobné, že při použití VBR zhoršíte výsledky s výchozím kodérem AAC. Viz: https://trac.ffmpeg.org/wiki/Encode/AAC
Jedním z návrhů by bylo použít libfdk_aac
. Druhou možností by bylo demuxovat zvuk, překódovat jej pomocí jiného kodéru a poté tento soubor remuxovat zpět do videa pomocí ffmpeg.