Si necesita retrasar el video en 3.84 segundos, use un comando como este:
ffmpeg.exe -i "movie.mp4" -itsoffset 3.84 -i "movie.mp4" -map 1:v -map 0:a -c copy "movie-video-delayed.mp4"
Si necesita retrasar el audio en 3.84 segundos, use un comando como este:
ffmpeg.exe -i "movie.mp4" -itsoffset 3.84 -i "movie.mp4" -map 0:v -map 1:a -c copy "movie-audio-delayed.mp4"
Asegúrese de que su compilación ffmpeg no sea demasiado antigua, más reciente que 2012 será suficiente.
Explicación
-itsoffset 3.84 -i "movie.mp4"
Desfase las marcas de tiempo de todas las transmisiones en 3.84 segundos en el archivo de entrada que sigue a la opción (movie.mp4).
-map 1:v -map 0:a
Toma la transmisión de video de la segunda entrada (retrasada) y la transmisión de audio de la primera entrada; ambas entradas pueden, por supuesto, ser el mismo archivo.
Se puede encontrar una explicación más detallada aquí:
http://alien.slackbook.org/blog/fixing-audio-sync-with-ffmpeg/
ffprobe.exe "input_file.mp4"
offmpeg.exe -i "input_file.mp4"
Supongamos que el índice de la secuencia de audio que se retrasará es 2 (es decir, la tercera secuencia) y que la entrada retardada es el segundo (como en mi ejemplo). Para retrasar solo la tercera transmisión, tome todas las demás transmisiones de la primera entrada y solo la transmisión de audio de la segunda entrada (retrasada):-map 0:0 -map 0:1 -map 1:2
-map 1:m:language:eng
Sin embargo, tenga en cuenta que seleccionará todos los flujos. satisfaciendo el criterio, posiblemente incluyendo múltiples transmisiones de audio y / o subtítulos. Puede encontrar más información en stackoverflow.com/questions/46769419/…-c copy
se puede utilizar en lugar de-vcodec copy -acodec copy
, yitsoffset
sólo afecta a vídeo, así que tal vez esto funcionaría de la misma ?:ffmpeg -i "movie.mp4" -itsoffset 3.84 -c copy "movie-video-delayed.mp4"
y retrasar el audio en su lugar simplemente añadir un signo negativo a la duración:-3.84
.Hacer primer silencio de audio:
Luego archivos concat:
fuente