Probablemente no tenga un fotograma clave en la marca de 3 segundos. Debido a que los fotogramas que no son clave codifican diferencias de otros fotogramas, requieren todos los datos que comienzan con el fotograma clave anterior.
Con el contenedor mp4 es posible cortar en un fotograma no clave sin volver a codificar utilizando una lista de edición. En otras palabras, si el fotograma clave más cercano antes de 3s está en 0s, copiará el video que comienza en 0s y usará una lista de edición para indicarle al jugador que comience a jugar 3 segundos después.
Si está utilizando la última versión de ffmpeg de git master, lo hará mediante una lista de edición cuando se invoque con el comando que proporcionó. Si esto no funciona para usted, entonces probablemente esté utilizando una versión anterior de ffmpeg o su reproductor no sea compatible con las listas de edición. Algunos jugadores ignorarán la lista de edición y siempre reproducirán todos los medios del archivo de principio a fin.
Si desea cortar con precisión comenzando en un fotograma no clave y desea que se reproduzca comenzando en el punto deseado en un reproductor que no admite listas de edición, o si desea asegurarse de que la porción de corte no esté realmente en el archivo de salida (por ejemplo si contiene información confidencial), puede hacerlo volviendo a codificar para que haya un fotograma clave precisamente a la hora de inicio deseada. Volver a codificar es el valor predeterminado si no especifica copy
. Por ejemplo:
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
Al volver a codificar, es posible que también desee incluir opciones adicionales relacionadas con la calidad o un codificador AAC en particular. Para obtener detalles, consulte la Guía de codificación x264 de ffmpeg para video y la Guía de codificación AAC para audio.
Además, la -t
opción especifica una duración, no una hora de finalización. El comando anterior codificará 8 segundos de video a partir de 3 segundos. Para comenzar a los 3 segundos y terminar a los 8 segundos use -t 5
. Si está utilizando una versión actual de FFmpeg también puede reemplazar -t
con -to
en el comando anterior a extremo a la hora especificada.