Estou tentando alterar um AR de vídeos com ffmpeg assim:
ffmpeg -i in.mp4 -aspect 16:9 -c copy out.mp4
...e embora isso basicamente funcione, perde um segundo fluxo de áudio que está presente na fonte, bem como as legendas. Como posso fazer isso sem perder nada?
Responder1
Mapeie todos os fluxos
ffmpeg -i in.mp4 -aspect 16:9 -map 0 -c copy out.mp4
O FFmpeg, por padrão, escolheráapenas umfluxo de vídeo e áudio da fonte, sem mapa.
Responder2
Use map
o parâmetro para selecionar streams de áudio e copiar streams para cada stream separadamente. Exemplo (por favor, não copie o exemplo como está em sua linha de comando com comentários, você deve remover os comentários primeiro e formatá-lo como linha única ou conectar quebras de linha com \
símbolo!):
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
ou
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