¿Cómo combinar estos dos comandos FFmpeg en un solo comando?

¿Cómo combinar estos dos comandos FFmpeg en un solo comando?

Estoy usando ffmpeg para modificar varios .mp4archivos.

Primero uso este comando para cambiar el idioma predeterminado de enga fr.

ffmpeg.exe -i "imput 1.mp4" -map 0 -c copy -disposition:a:0 0 -disposition:a:1 default "Output 2.mp4" 

Luego quiero usar este comando para agregar subtítulos suaves del .srtarchivo al archivo .mp4.

ffmpeg.exe -i "Input 1.mp4" -i "Input 2.srt" -c copy -c:s mov_text -metadata:s:s:0 language=fr "Output 1.mp4"

Estos dos comandos funcionan de forma independiente pero me gustaría combinarlos en una sola línea.

Intenté algo como esto pero solo cambia el audio, no hay ningún efecto en los subtítulos.

ffmpeg.exe -i "Input 1.mp4" -i "Input 2.srt" -map 0 -c copy -disposition:a:0 0 -disposition:a:1 default -c:s mov_text -metadata:s:s:0 language=fr Output 1.mp4"

Sé que algo anda mal pero no puedo resolverlo.

¿Alguien puede decirme qué pasa con mi comando combinado?

Luego, como dije antes, estoy trabajando en varios archivos (314 exactamente) y cada archivo tiene su propio nombre y es tedioso cambiar manualmente el nombre del archivo cada vez. ¿Hay alguna manera de hacerlo para cada archivo presente en un directorio?

Respuesta1

Pruebe esto dentro de la carpeta donde están los videos + los subtítulos, abra el símbolo del sistema y use este comando:

for %a in (*.mkv *.mp4) do ffmpeg -i "%a" -i "%~na.srt" -map 0 -map 1:s:0 -disposition:a:0 0 -disposition:a:1 default -c copy -metadata:s:s:0 language=fr "%~na_new.%~xa"

Debería crear un vídeo nuevo con el mismo nombre que el anterior pero con "nuevo" en el nombre y audio y subtítulos cambiados.

información relacionada