Je souhaite que mon site Web permette aux utilisateurs de créer avec précision leurs propres clips à partir d'une vidéo source que je fournis.
J'ai un fichier vidéo source que je veux d'abord convertir en un fichier adapté à un site 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)
J'utilise ffmpeg pour le convertir comme ceci:
ffmpeg -i source.mkv -c:v libx264 -c:a aac -strict experimental -vf scale="960:-1" source.mp4
En regardant cette vidéo, elle est de bonne qualité et de taille de fichier suffisamment petite pour mes besoins, et se charge / joue sur mon site Web.
J'ai une page Web qui permet aux utilisateurs de sélectionner un début et une fin sur cette vidéo - et de créer un clip. Voici un exemple de la commande ffmpeg que j'utilise pour cela:
-ss 577.920 -i source.mp4 -t 011.980 -codec:v copy -codec:a copy -vf scale="960:-1" clip1.mp4
Le problème est que le clip n'est pas toujours suffisamment précis dans le temps. Habituellement, l'audio est suffisamment précis, mais la vidéo s'arrête une demi-seconde plus tôt ou quelque chose comme ça.
Existe-t-il un moyen de rendre cela précis et synchronisé, à savoir 0,2 seconde?
EDIT: l'ajout -force_key_frames 00:00:00.2
n'a pas aidé.
EDIT: J'ai changé l'écrêtage à utiliser -c:v libx264 -c:a aac -strict experimental
plutôt -codec:v copy -codec:a copy
qu'avec de bons résultats (ish).
Le fichier peut être lu en externe sans problème - mais quand je le charge dans mon élément vidéo html5 et le joue - la dernière partie de la vidéo (l'audio est bien) se fige. La dernière partie qui se fige dure moins d'une seconde.
Dois-je l'essayer avec un autre encodeur vidéo? Quelle est la meilleure alternative pour libx264? Gardant à l'esprit que je souhaiterai probablement que ce soit sur un site Web public.
Mais attendez le fait qu'il joue avec précision sans problème avec un lecteur comme MPC ou Windows Media Player ne suggère pas que c'est un problème avec Google Chrome ou l'élément vidéo HTML? Ou est-ce que j'utilise un encodage non pris en charge ou quelque chose?