Manipular archivos de video MP4 usando ffmpeg
Instalar en ubuntu / debian
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install ffmpeg
Convertir un archivo .VOB a .MP
ffmpeg -i VTS*01*.VOB -vf yadif -c:v libx264 -preset slow -crf 19 -c:a aac -b:a 256k output.mp4
Para pegar dos videos sin perdida
ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy output.ts
Para pegar varios videos en uno solo MP4
echo file video1.mp4 > lista.txt
echo file video2.mp4 >> lista.txt
echo file video3.mp4 >> lista.txt
ffmpeg -f concat -i lista.txt -c copy output.mp4
Para cortar un video en un rango de tiempo determinado, por ejemplo del minuto 00:01:00 al minuto 00:20:00
ffmpeg -ss 00:01:00 -i input.mp4 -to 00:20:00 -c:v copy -c:a copy output.mp4
Para cortar alguna seccion de un mp4 por ejemplo este comando crea un nuevo vide del minuto 5 al minuto 25
ffmpeg -ss 00:05:00 -i input.mp4 -to 00:25:00 -c:v copy -c:a copy output.mp4
Este otro crea un video nuevo de 6 minutos a partir del minuto 3
ffmpeg -ss 00:03:00 -i input.mp4 -t 00:06:00 -c:v copy -c:a copy output.mp4
Comando para comprimir el video mp4 / -crf puede ser entre 0 y 50, en donde 0 es sin perdida de calidad y 50 es lo mas bajo
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4
ffmpeg -i input.mp4 -vcodec libx264 -crf 28 output.mp4
Quitar audio ffmpeg -i input.trec -c copy -an output.mp4
Remplazar audio ffmpeg -i input.mp4 -i new_audio.wav -c:v copy -map 0:v:0 -map 1:a:0 output.mp4
Extraer audio ffmpeg -i inoput.mp4 -vn -acodec copy audio.aac ffmpeg -i input.mp4 -q:a 0 -map a audio.mp3
Para rotar un video
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
0 - 90 grados en contra de las manecillas del reloj y refleja vertical
1 - 90 grados direccion a las manecillas del reloj
2 - 90 grados en contra de las manecillas del reloj
3 - 90 grados direccion a las manecillas del reloj y refleja vertical
Duración de un video / ffmpeg + bash
seconds=$(ffprobe -i video.mp4 -show_entries format=duration -v quiet -of csv="p=0" -sexagesimal)
time="${seconds%.*}"
echo time
ffmpeg es una herramienta muy conveniente, si quieres ver alguno usos alternativos e interesates puedes visitar el blog de Alexander Refsum Jensenius o para hacer conversiones de audio 2