Voglio che il mio sito Web consenta agli utenti di creare accuratamente i propri clip da un video sorgente che fornisco.
Ho un file video sorgente che voglio prima convertire in qualcosa adatto a un sito 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)
Uso ffmpeg per convertirlo in questo modo:
ffmpeg -i source.mkv -c:v libx264 -c:a aac -strict experimental -vf scale="960:-1" source.mp4
Guardando indietro questo video, è di qualità abbastanza buona e dimensioni del file abbastanza piccole per le mie esigenze, e carica / riproduce sul mio sito web.
Ho una pagina web che consente agli utenti di selezionare un inizio e un endpoint in questo video e creare una clip. Ecco un esempio del comando ffmpeg che uso per questo:
-ss 577.920 -i source.mp4 -t 011.980 -codec:v copy -codec:a copy -vf scale="960:-1" clip1.mp4
Il problema è che la clip non è sempre abbastanza precisa nel tempo. Di solito l'audio è abbastanza preciso ma il video si interrompe mezzo secondo prima o qualcosa del genere.
C'è un modo per rendere questo preciso e sincronizzato per dire, 0,2 di secondo?
EDIT: l'aggiunta -force_key_frames 00:00:00.2
non ha aiutato.
EDIT: ho cambiato il ritaglio da usare -c:v libx264 -c:a aac -strict experimental
invece che -codec:v copy -codec:a copy
con buoni risultati (ish).
Il file può essere riprodotto esternamente senza problemi, ma quando lo carico nell'elemento video html5 e lo riproduco, l'ultima parte del video (l'audio va bene) si blocca. L'ultima parte che si blocca è lunga meno di un secondo.
Dovrei provarlo con un altro codificatore video? Qual è la migliore alternativa a libx264? Tenendo presente che probabilmente vorrò che questo fosse su un sito Web pubblico.
Ma resisti, il fatto che venga riprodotto accuratamente senza problemi con un lettore come MPC o Windows Media Player suggerisce che si tratta di un problema con Google Chrome o l'elemento video HTML? O sto usando una codifica non supportata o qualcosa del genere?