Quiero que mi sitio web permita a los usuarios crear con precisión sus propios clips de un video fuente que proporciono.
Tengo un archivo de video fuente que primero quiero convertir a algo adecuado para un sitio web:
Input #0, matroska,webm, from 'source.mkv':
Duration: 00:28:18.57, start: 0.000000, bitrate: 10183 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 48 tbc (default)
Stream #0:1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s (default)
Yo uso ffmpeg para convertirlo así:
ffmpeg -i source.mkv -c:v libx264 -c:a aac -strict experimental -vf scale="960:-1" source.mp4
Ver este video es de buena calidad y tamaño de archivo lo suficientemente pequeño para mis necesidades, y se carga / reproduce en mi sitio web.
Tengo una página web que permite a los usuarios seleccionar un inicio y un punto final en este video, y crear un clip. Aquí hay un ejemplo del comando ffmpeg que uso para eso:
-ss 577.920 -i source.mp4 -t 011.980 -codec:v copy -codec:a copy -vf scale="960:-1" clip1.mp4
El problema es que el clip no siempre es lo suficientemente preciso. Por lo general, el audio es lo suficientemente preciso, pero el video se detiene medio segundo antes o algo así.
¿Hay alguna manera de hacer que esto sea preciso y sincronizado para decir, 0.2 de segundo?
EDITAR: Agregar -force_key_frames 00:00:00.2
no ayudó.
EDITAR: cambié el recorte para usar en -c:v libx264 -c:a aac -strict experimental
lugar de -codec:v copy -codec:a copy
con buenos (ish) resultados.
El archivo puede reproducirse externamente sin problemas, pero cuando lo cargo en mi elemento de video html5 y lo reproduzco, la última parte del video (el audio está bien) se congela. La última parte que se congela dura menos de un segundo.
¿Debería probarlo con otro codificador de video? ¿Cuál es la mejor alternativa para libx264? Teniendo en cuenta que probablemente querré que esto esté en un sitio web público.
Pero espera, ¿el hecho de que se reproduce con precisión sin problemas con un reproductor como MPC o Windows Media Player sugiere que es un problema con Google Chrome o el elemento de video HTML? ¿O estoy usando una codificación no compatible o algo así?