Chciałem ustawić interwał klatki kluczowej wejściowego wideo na 5 sekund. Tylko wtedy mogę uzyskać stałą 5 sekundową segmentację HLS przy użyciu FFmpeg. Jak ustawić interwał klatki kluczowej na 5 sekund za pomocą FFmpeg? (Mile widziane oznaczenie linii FFmpeg docenione)jak zmienić interwał klatek kluczowych w ffmpeg
Odpowiedz
Będziesz musiał ponownie kodować. Ustaw parametr key x264 na 5 * fps i wyłącz scenecut. Jeśli Twoje fps wynosi na przykład 24:
ffmpeg -i <input> -vcodec libx264 -x264-params keyint=120:scenecut=0 -acodec copy out.mp4
Oczywiście nie jest to optymalna jakość, ale odpowiada Twoim wymaganiom.
Edytowany w celu zmiany no-scenecut
na scenecut=0
, zgodnie z sugestią westchnienia chłopca.
Westchnienie.
Dezinformacja dotycząca opcji bez scenek trwa dłużej niż pamiętam. Nigdy nie wprowadzaj wartości bez przygotowania.
Łącze do dokumentacji można znaleźć here.
Dla FFmpeg trzeba użyć następujące dwa przełączniki:
-g 120 określi GOP 120 klatek stworzyć pięć drugi GOP dla 23.976fps treści. Działa to w połączeniu z opcją bez wykreślania.
-x264opts no-scenecut wymusza tworzenie klatek kluczowych na wartość GOP, z której korzysta FFmpeg. Domyślnym ustawieniem dla libx264 jest utworzenie klatki kluczowej po wykryciu zmiany sceny. Jeśli sprawdzasz plik wyjściowy za pomocą MediInfo bez tej opcji, zobaczysz "scenecut = 40". Po prawidłowym wykonaniu będzie to "scenecut = 0". Jeśli ta opcja nie zostanie użyta, klatki kluczowe będą niedopasowane pod względem zawartości ABR, a rozmiary segmentów będą nieprzewidywalne.
Nie wierz mi na słowo, uruchom następujące polecenie pod powłoką bash, gdzie $ plik_wejściowy to nazwa pliku, który chcesz przeanalizować. Jeśli użyjesz dwóch przełączników pokazanych powyżej, zobaczysz bardzo równomierny rytm zrzutów klatek kluczowych do wiersza polecenia.
ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv $inputfile | grep -n I | cut -d ':' -f 1
Można również odwołać się artykuł, który napisałem w sprawie sposobu tworzenia odpowiedniej oprawy ABR wyrównany treści here.
Dla pełnej dokładności powinieneś użyć 'frame = key_frame'. Możliwe są klatki I, które nie są klatkami kluczowymi. – Mulvya
- 1. Przerwa między animacjami klatek kluczowych
- 2. Kodowanie ze zmienną liczbą klatek w ffmpeg
- 3. Jak zmienić interwał osi x wykresu
- 4. Dostosuj liczbę klatek na sekundę do MPG4 w ffMpeg
- 5. animacje CSS3 klatek kluczowych powolny na wyświetlaczu Retina
- 6. Pobieranie/ustawianie bieżących procentów @keyframes/zmiana klatek kluczowych
- 7. wartości Set Webkit klatek kluczowych przy użyciu JavaScript Zmienna
- 8. Czy można użyć animacji klatek kluczowych do pseudoelementu?
- 9. błędy przy dekodowaniu klatek H.264 za pomocą ffmpeg
- 10. Korzystanie ffmpeg zmianie framerate
- 11. Jak uzyskać listę kluczowych klatek (ramek synchronizacji) znaczników czasu dla plików wideo w systemie Android?
- 12. Wyodrębnianie klatek z MP4/FLV?
- 13. ffmpeg av_seek_frame
- 14. Jak odwzorować interwał typu w trybie hibernacji?
- 15. Jak obliczyć interwał między datetime w MySQL?
- 16. Użyj ffmpeg, aby zmienić rozmiar obrazu
- 17. Maksymalny interwał czasowy
- 18. HTML5 interwał wejściowy "time"
- 19. JavaScript - interwał jQuery
- 20. Dlaczego moja animacja klatek kluczowych dla koloru linków nie działa w przeglądarce Chrome?
- 21. Jak zmienić pozycję tła przy animacji css3?
- 22. Jak zmienić interwał czasowy w System.Threading.Timer z funkcji wywołania zwrotnego tego timera?
- 23. Użyj warstwy tła DOM z animacjami klatek kluczowych i warstwą Canvas dla silnika fizycznego
- 24. kolejce animacje CSS z wykorzystaniem opóźnienia lub klatek kluczowych, które mogą być przerwane sprawnie
- 25. Uszkodzone animacje klatek kluczowych CSS podczas korzystania z programu css-loader programu WebPack z wtyczką UglifyJS
- 26. Jak usunąć interwał z nieznanym identyfikatorem?
- 27. Źródło danych RSS: jak zalecić interwał aktualizacji?
- 28. Jak wyczyścić interwał i ustawić go ponownie?
- 29. Jak dodać interwał czasowy do NSDate?
- 30. FFmpeg -ss dziwne zachowanie
Dzięki za to ... i masz rację, częściej niż nie, obcięcie z interwałami klatek kluczowych psuje się jakością. –
Czy masz jakieś źródło, które mówi: "jeśli ustawimy interwał klatki kluczowej, coś złego dzieje się z jakością"?! –
Boli albo jakość, albo bitrate. Inteligentne kodowanie umieści klatki kluczowe, gdy pojawi się scenariusz, aby przyszłe ramki mogły mieć czyste odniesienie. Jeśli wymusisz interwał, klatki kluczowe nie będą w ogóle optymalne dla przyszłych ramek, co z kolei będzie miało negatywny wpływ na strumień. – Ely