Можно ли преобразовать один звуковых дорожек в видеофайле в другой формат при копировании/ремультировании других звуковых дорожек в файле с помощью FFmpeg?
В частности, возможно ли это сделать без явного указания всех звуковых дорожек, которые вы хотите сохранить?
Я попытался использовать функцию -map,
ffmpeg -i INPUT -c:v copy -c:a libfdk_aac -map 1:a:2 OUTPUT.mkv
но это кодирует только первую звуковую дорожку и исключает остальные. Я знаю, что, вероятно, могу явно указать FFmpeg мультиплексировать все остальные звуковые дорожки, но это действительно утомительно. Это означает, что мне придется считать каждую звуковую дорожку и писать значительно более длинную команду.
Нет ли способа сказать FFmpeg «конвертировать звуковую дорожку X и скопировать остальные»?
Вот MediaInfo файла. Обратите внимание, что имеется более 10 звуковых дорожек, но я исключил их из этого примера для простоты.
Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main [email protected]@High
HDR format : SMPTE ST 2086, HDR10 compatible
Codec ID : 36
Duration : 2 h 30 min
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 2)
Bit depth : 10 bits
Color range : Limited
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primaries : Display P3
Mastering display luminance : min: 0.0050 cd/m2, max: 4000 cd/m2
Maximum Content Light Level : 349 cd/m2
Maximum Frame-Average Light Level : 86 cd/m2
Audio #1
ID : 4352 (0x1100)
Menu ID : 1 (0x1)
Format : DTS XLL
Format/Info : Digital Theater Systems
Commercial name : DTS-HD Master Audio
Muxing mode : Stream extension
Codec ID : 134
Duration : 2 h 30 min
Bit rate mode : Variable
Channel(s) : 6 channels
Channel layout : C L R Ls Rs LFE
Sampling rate : 48.0 kHz
Frame rate : 93.750 FPS (512 SPF)
Bit depth : 24 bits
Compression mode : Lossless
Audio #2
ID : 4353 (0x1101)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Commercial name : Dolby Digital
Codec ID : 129
Duration : 2 h 30 min
Bit rate mode : Constant
Bit rate : 640 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Bit depth : 16 bits
Compression mode : Lossy
Delay relative to video : -9 ms
Stream size : 687 MiB (1%)
Service kind : Complete Main
Audio #3
ID : 4354 (0x1102)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Commercial name : Dolby Digital
Codec ID : 129
Duration : 2 h 30 min
Bit rate mode : Constant
Bit rate : 448 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Bit depth : 16 bits
Compression mode : Lossy
Delay relative to video : -9 ms
Stream size : 481 MiB (1%)
Service kind : Complete Main





Пытаться:
ffmpeg -i INPUT -map 0 -c copy -c:a:2 libfdk_aac OUTPUT.mkv
-map 0 сопоставить все потоки (видео/аудио/субтитры/и т. д.) входа #0-c copy устанавливает операцию копирования по умолчанию-c:a:2 настраивает перекодирование третьего выходного аудиопотока.ofc, проверьте этот ответ
Спасибо, вроде работает. Любой способ преобразовать 3D-аудио И скопировать его тоже? Извините, если это новый вопрос, я могу открыть новый...