Probabilmente non hai un fotogramma chiave al segno di 3 secondi. Poiché i fotogrammi non chiave codificano le differenze rispetto ad altri fotogrammi, richiedono tutti i dati a partire dal fotogramma chiave precedente.
Con il contenitore mp4 è possibile tagliare in un fotogramma non chiave senza ricodificare utilizzando un elenco di modifica. In altre parole, se il fotogramma chiave più vicino prima di 3 secondi è a 0 secondi, il video verrà copiato a partire da 0 secondi e verrà utilizzato un elenco di modifica per indicare al giocatore di iniziare la riproduzione entro 3 secondi.
Se stai usando l' ultimo ffmpeg dal master git, lo farà usando un elenco di modifica quando invocato usando il comando che hai fornito. Se questo non funziona per te, probabilmente stai utilizzando una versione precedente di ffmpeg o il tuo lettore non supporta gli elenchi di modifica. Alcuni lettori ignoreranno l'elenco di modifica e riprodurranno sempre tutti i file multimediali nel file dall'inizio alla fine.
Se si desidera tagliare con precisione partendo da un fotogramma non chiave e si desidera che inizi a partire dal punto desiderato su un lettore che non supporta gli elenchi di modifica o si desidera garantire che la parte tagliata non si trovi effettivamente nel file di output (ad esempio se contiene informazioni riservate), è possibile farlo ricodificando in modo che ci sia un fotogramma chiave esattamente all'ora di inizio desiderata. La ricodifica è l'impostazione predefinita se non si specifica copy
. Per esempio:
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
Quando si ricodifica, è possibile che si desideri includere ulteriori opzioni relative alla qualità o un particolare codificatore AAC. Per i dettagli, consultare la Guida alla codifica x264 di ffmpeg per video e la Guida alla codifica AAC per l'audio.
Inoltre, l' -t
opzione specifica una durata, non un'ora di fine. Il comando sopra codificherà 8 secondi di video a partire da 3 secondi. Per iniziare a 3 secondi e terminare a 8 secondi usare -t 5
. Se stai usando una versione corrente di ffmpeg puoi anche sostituirla -t
con -to
il comando sopra per terminare all'ora specificata.