Я пытаюсь изменить видео AR с помощью ffmpeg следующим образом:
ffmpeg -i in.mp4 -aspect 16:9 -c copy out.mp4
...и хотя это в принципе работает, теряется второй аудиопоток, который присутствует в источнике, а также субтитры. Как это сделать, ничего не потеряв?
решение1
Карта всех потоков
ffmpeg -i in.mp4 -aspect 16:9 -map 0 -c copy out.mp4
По умолчанию FFmpeg выбереттолько одинвидео и аудио поток из источника, без карты.
решение2
Используйте map
параметр для выбора аудиопотоков и копирования потоков по каждому потоку отдельно. Пример (пожалуйста, не копируйте пример как есть в вашей командной строке с комментариями, сначала необходимо удалить комментарии и отформатировать его как одну строку или соединить разрывы строк символом \
!):
ffmpeg -i input.mp4
-map 0:0 -map 0:1 # Include both (2) audio streams
-aspect 16:9 # Change video aspect ratio
-c:v copy # Copy audio codec settings
-c:a copy # Copy audio codec settings
-c:s copy # Copy subtitles
output.mp4
или
ffmpeg -i input.mp4
-map 0:? # Include all audio streams
-aspect 16:9 # Change video aspect ratio
-c:v copy # Copy audio codec settings
-c:a copy # Copy audio codec settings
-c:s copy # Copy subtitles
output.mp4