Volevo impostare l'intervallo di fotogrammi chiave di un video di input su 5 secondi. Solo così posso ottenere una segmentazione HLS costante di 5 secondi usando FFmpeg. Come impostare l'intervallo di fotogrammi chiave su 5 secondi usando FFmpeg? (È stato apprezzato il codice di linea FFmpegcome modificare l'intervallo di fotogrammi chiave in ffmpeg
risposta
Avrete bisogno di ricodificare. Imposta il parametro keyint di x264 su 5 * fps e disabilita scenecut. Ad esempio, se il tuo fps è 24:
ffmpeg -i <input> -vcodec libx264 -x264-params keyint=120:scenecut=0 -acodec copy out.mp4
Questo ovviamente non è ottimale per la qualità ma corrisponderà alla tua richiesta.
Modificato per modificare no-scenecut
a scenecut=0
, come da suggerimento per il ragazzo seduto.
Sigh.
La disinformazione relativa all'opzione no-scenecut è andata avanti più a lungo di quanto possa ricordare. Non inserire mai un valore per no-scenecut.
È disponibile un collegamento alla documentazione here.
Per FFmpeg è necessario utilizzare i seguenti due interruttori:
-g 120 definirà un GOP di 120 fotogrammi per creare cinque secondi GOP per 23.976fps contenuti. Questo funziona in combinazione con l'opzione no-scenecut ..
-x264opts no-scenecut costringerà i fotogrammi chiave da creare per il valore GOP utilizzato da FFmpeg. L'impostazione predefinita per libx264 è di creare un fotogramma chiave quando rileva una modifica di scena. Se controlli un file di output usando MediInfo senza questa opzione vedrai "scenecut = 40". Se fatto correttamente, sarà "scenecut = 0". Se questa opzione non viene utilizzata, i fotogrammi chiave saranno disallineati per il contenuto di ABR e le dimensioni dei segmenti saranno imprevedibili.
Non credetemi, eseguire il comando seguente in una shell bash in cui $ inputfile è il nome del file che si desidera analizzare. Se si utilizzano i due interruttori mostrati sopra, si vedrà una cadenza molto uniforme del dump dei keyframe al prompt dei comandi.
ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv $inputfile | grep -n I | cut -d ':' -f 1
È inoltre possibile fare riferimento a un articolo che ho scritto su come creare una corretta cornice ABR contenuti here allineati.
Per la massima precisione, si dovrebbe usare 'frame = key_frame'. È possibile avere I-frame che non sono fotogrammi chiave. – Mulvya
- 1. Estrazione di fotogrammi chiave ffmpeg
- 2. Come controllare la generazione dei fotogrammi chiave di ffmpeg?
- 3. Ffmpeg effetti di dissolvenza tra i fotogrammi
- 4. FFMPEG - Come estrarre i fotogrammi come immagini rimuovendo sequenzialmente i fotogrammi duplicati
- 5. estratto tutti i fotogrammi video come immagini con FFMPEG
- 6. Codifica da FFMPEG a MPEG-DASH - o WebM con cluster di fotogrammi chiave - per API MediaSource
- 7. Animazioni fotogrammi chiave non sincronizzati
- 8. Animazioni di fotogrammi chiave multipli che non funzionano in safari
- 9. fotogrammi chiave trigger CSS3 utilizzando jQuery
- 10. Riavvio dei fotogrammi chiave al clic
- 11. come impostare la curva di animazione quando si utilizza l'animazione di fotogrammi chiave in ios?
- 12. ffmpeg av_seek_frame
- 13. animazioni CSS3 fotogrammi chiave lenta sul display Retina
- 14. Valori Set Webkit Fotogrammi chiave utilizzando JavaScript variabile
- 15. Ottenere i singoli fotogrammi che utilizzano CV_CAP_PROP_POS_FRAMES in cvSetCaptureProperty
- 16. È possibile utilizzare l'animazione dei fotogrammi chiave allo pseudo-elemento?
- 17. Animazioni fotogrammi chiave CSS3: termina e resta sull'ultimo fotogramma
- 18. Codifica con frame rate variabile in ffmpeg
- 19. Regolare MPG4 framerate in ffmpeg
- 20. Imposta i fotogrammi chiave webkit da/su parametro con JavaScript
- 21. Utilizzo di una definizione di fotogrammi chiave di animazione in linea?
- 22. ffmpeg c/C++ ottenere conteggio fotogrammi o data/ora e fps
- 23. Come modificare il nome della chiave esterna?
- 24. Esecuzione di ffmpeg come libreria in Android
- 25. Attivare l'animazione di fotogrammi chiave CSS3 quando il contenuto scorre in vista
- 26. Come modificare la colonna chiave primaria in Grails?
- 27. FFMPEG overlay video in loop
- 28. Impostazione di frame B in un video con ffmpeg
- 29. animazioni CSS in coda con ritardo o fotogrammi chiave che possono essere interrotti senza problemi
- 30. Modificare la chiave primaria di una tabella in SQLite
Grazie per questo ... e hai ragione, il più delle volte, scherzare con intervalli di fotogrammi chiave è fare casino con la qualità. –
Avete qualche fonte che dice "se impostiamo l'intervallo dei fotogrammi chiave, qualcosa di brutto succede alla qualità"?! –
Danneggia la qualità o il bitrate. Gli smart encorder posizionano fotogrammi chiave quando c'è uno scenecut in modo che i fotogrammi futuri possano avere un riferimento pulito. Se imposti l'intervallo, i fotogrammi chiave non saranno ottimali per i fotogrammi futuri e questo danneggerà il flusso generale. – Ely