Extraer parte de un video
Para copiar de un video desde X hasta Y segundos (en formato 00:00:00) haremos lo siguiente:
ffmpeg \
i archivooriginal.mp4\
-ss X \
-to Y\
-c:v copy \
-c:a copy \
nuevoarchivorecorte.mp4
Para copiar de un video Y segundos a partir del segundo X haremos lo siguiente:
ffmpeg i archivooriginal.mp4 -ss X -t Y -c:v copy -c:a copy nuevoarchivorecorte.mp4
Una explicación es la siguiente:
ffmpeg -i input.mp4 -ss 00:00:00 -to 00:10:00 -c copy output1.mp4
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:20:00 -c copy output2.mp4
/**
* -i nombre -> Archivo de ingreso
* -ss X -> En qué segundos comenzar, formato número de segundos o hh:mm:ss
* -to Y -> tiempo de finalización, formato número de segundos o in hh:mm:ss
* -c copy -> copiar códec
*/
Extirpar una parte del video
Lo siguiente evita eso de re codificar el video, pero podés sólo cortar según los keyframes; así que talvés no puedas elegir la duración que quisieras:
- Crear segmentos:
ffmpeg -t 00:11:00 -i input.mp4 -map 0 -c copy segment1.mp4
ffmpeg -ss 00:11:10 -i input.mp4 -map 0 -c copy segment2.mp4
- Crear
input.txt
:
file 'segment1.mp4'
file 'segment2.mp4'
- Concatenar con el concat demuxer:
ffmpeg -f concat -i input.txt -map 0 -c copy output.mp4
En la misma solución (https://askubuntu.com/questions/977162/how-to-remove-a-few-seconds-from-mp4-file-using-ffmpeg) ofrecen la guía para realizar lo mismo pero con re-codificación del video nuevo:
ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=end=660,setpts=N/FRAME_RATE/TB[v0]; \
[0:a]atrim=end=660,asetpts=N/SR/TB[a0]; \
[0:v]trim=start=670,setpts=N/FRAME_RATE/TB[v1]; \
[0:a]atrim=start=670,asetpts=N/SR/TB[a1]; \
[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" output.mp4
- (a)trim will allow you to choose your clips.
- (a)setpts resets timestamps.
- concat concatenates the clips.
Para extraer una imagen de un video en el segundo X podemos realizar lo siguiente:
ffmpeg -ss X -i videooriginal.mp4 -frames:v 1 imagen.jpg
Averiguar dimensiones
ffprobe -v error -select_streams v:0 -show_entries stream=width,height archivooriginal.mp4
Mostrar cámara web en una ventanita de X dimensiones:
ffplay /dev/video0 -s 340x200Written with StackEdit.
Comentarios
Publicar un comentario