
Estoy usando ffmpeg para modificar varios .mp4
archivos.
Primero uso este comando para cambiar el idioma predeterminado de eng
a 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 .srt
archivo 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.