[HowTo] Trocear un video desde línea de comandos con ffmpeg o mencoder

Posted: sábado, 9 de noviembre de 2019 by Termita in Etiquetas: , , , , , , , ,
0

¿Para qué podemos querer trocear un video?
Por ejemplo, para subirlo a nuestra "nube" de Telegram, que sólo admite un máximo de 1'5gb por archivo.

Debo señalar que cuando a veces he troceado con ffmpeg -probablemente a causa de las características del "ripeo" del video- el resultado tiene un desfase audio-video. Esto es francamente desagradable.

Por otro lado, mencoder a día de hoy ya no es una herramienta que esté siendo mantenida activamente, al contrario de ffmpeg. Esto no resta potencia a mencoder, mas cabe señalarlo.


A. Mediante mencoder

mencoder -noskip -mc 0 -ss hhmmssDeInicio -endpos hhmmssDeFin -oac copy -ovc copy nombredelvideoOrigen.avi -o nombredelvideo_fragmento_xdey.avi

(*) Los tiempos que se asignarán han de ser dados en el formato hh:mm:ss

(**) El parámetro -noskip -mc 0 sirve para que no se salte los frames duplicados ("duplicate frames"). Esto es útil para evitar desincronía audio-video.

---------------------------
por ejemplo:

mencoder -noskip -mc 0 -ss 00:00:00 -endpos 00:40:00 -oac copy -ovc copy historiadelinux.avi -o nombredelvideo_fragmento_1de2.avi

mencoder -noskip -mc 0 -ss 00:40:00 -endpos 01:15:08 -oac copy -ovc copy historiadelinux.avi -o nombredelvideo_fragmento_2de2.avi

De esta forma, dado un video llamado historiadelinux.avi lo partiremos en 2 fragmentos, teniendo en cuenta los frames duplicados. Un fragmento será de exactamente 40' y el otro de 35' y 8''.
---------------------------


B. Mediante ffmpeg


ffmpeg -i nombredelvideoorigen.avi -ss hh:mm:ssDeInicio -to hh:mm:ssDeFin -c:v copy -c:a copy nombredelvideo_fragmento_xdey.avi


(*) Los tiempos que se asignarán han de ser dados en el formato hh:mm:ss

(**) En caso de detectarse desincronización audio-video en el producto resultante se podría añadir el parámetro -async 1 o aresample [ffmpeg -i nombredelvideoorigen.avi -ss hh:mm:ssDeInicio -to hh:mm:ssDeFin -async 1 -c:v copy -c:a copy nombredelvideo_fragmento_xdey.avi]



--------------------------
Fuentes
https://www.linuxadictos.com/cortar-videos.html
http://felinfo.blogspot.com/2016/02/cortar-un-video-desde-el-terminal-linux.html
https://mencoder-users.mplayerhq.narkive.com/f3jEAKxP/mencoder-skips-duplicate-frames-even-with-vf-harddup-and-noskip

https://www.mankier.com/1/mplayer#General_Encoding_Options_(Mencoder_Only)
https://www.mankier.com/1/ffmpeg

0 comentarios: