Primer segundo de la parte del video cortado congelado cuando FFmpeg corta una parte de un video


3

Lo uso para cortar una parte de un archivo MP4:

ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:36:18 -to 00:39:50 output.mp4

Funciona bien, pero la imagen de video siempre se congela al principio durante 1 segundo.

No importa de qué archivo de video trate y corte una parte, toma como 1 segundo antes de que comience el video.

Aquí hay un ejemplo de lo que estoy viendo.

Respuestas:


3

El problema podría ser que el video está intentando cortar basándose únicamente en cuadros clave y no en cuadros intermedios y su tiempo inicial 00:36:18es de unos segundos por delante de un cuadro clave. La solución debería ser usar la -copyinkfopción que se describe en el manual como :

Al hacer una copia de flujo, copie también los marcos no clave que se encuentran al principio.

Entonces su comando que se ve así:

ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:36:18 -to 00:39:50 output.mp4

Entonces necesitaría ser ajustado para verse así -copyinkfmezclado con él:

ffmpeg -i input.mp4 -vcodec copy -acodec copy -copyinkf -ss 00:36:18 -to 00:39:50 output.mp4

1

La marca de tiempo desde la que está copiando se encuentra entre fotogramas clave, el uso de -vcodec copy siempre dará como resultado este comportamiento si copia un códec entre fotogramas y su entrada no comienza en un fotograma clave.

Sus opciones son hacer una codificación completa (es decir, sin copia -vcodec) o elegir una marca de tiempo diferente para buscar. Puede encontrar la ubicación de todos los fotogramas clave utilizando ffprobe, por ejemplo.

ffprobe -select_streams v -show_frames -print_format csv -show_entries frame=key_frame,pkt_dts_time input.mp4  | grep "frame,1"

la tercera columna contiene las marcas de tiempo (en segundos) de todos los cuadros clave, desea la más cercana pero no después de su marca de tiempo objetivo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.