Tôi muốn đặt khoảng thời gian khung hình chính của video đầu vào thành 5 giây. Chỉ khi đó tôi mới có thể đạt được phân đoạn HLS 5 giây liên tục bằng FFmpeg. Làm thế nào để thiết lập khoảng khung hình chính đến 5 giây bằng cách sử dụng FFmpeg? (Mã dòng nhắc FFmpeg được đánh giá cao)cách thay đổi khoảng thời gian khung hình chính trong ffmpeg
Trả lời
Bạn sẽ cần phải mã hóa lại. Đặt tham số keyint của x264 thành 5 * fps và tắt scenecut. Nếu fps của bạn là 24 ví dụ:
ffmpeg -i <input> -vcodec libx264 -x264-params keyint=120:scenecut=0 -acodec copy out.mp4
Điều này rõ ràng không tối ưu về chất lượng nhưng nó sẽ phù hợp với nhu cầu của bạn.
Đã chỉnh sửa để thay đổi no-scenecut
thành scenecut=0
, theo gợi ý về tiếng thở dài-cậu bé.
Thở dài.
Thông tin sai lệch về tùy chọn không có cảnh sát đã diễn ra lâu hơn tôi có thể nhớ. Không bao giờ nhập giá trị cho no-scenecut.
Có thể tìm thấy liên kết đến tài liệu here.
Đối FFmpeg bạn cần phải sử dụng hai công tắc sau:
-g 120 sẽ xác định một GOP 120 khung hình để tạo ra một Năm thứ hai GOP cho 23.976fps nội dung. Điều này hoạt động cùng với tùy chọn không có phối cảnh ..
-x264chọn không có cảnh sát sẽ buộc các khung hình chính được tạo theo giá trị GOP mà FFmpeg sử dụng. Mặc định cho libx264 là tạo khung hình chính khi phát hiện thay đổi cảnh. Nếu bạn kiểm tra tệp đầu ra bằng cách sử dụng MediInfo mà không có tùy chọn đó sẽ thấy "scenecut = 40". Khi thực hiện đúng cách đó sẽ là "scenecut = 0". Nếu tùy chọn này không được sử dụng thì khung hình chính sẽ được căn lề cho nội dung ABR và kích thước đoạn sẽ không thể đoán trước.
Không dùng từ ngữ của tôi cho nó, hãy chạy phần dưới đây dưới một bash shell trong đó $ inputfile là tên của tệp bạn muốn phân tích. Nếu bạn sử dụng hai thiết bị chuyển mạch được hiển thị ở trên thì bạn sẽ thấy một nhịp rất đồng đều của các khung hình chính đổ vào dấu nhắc lệnh.
ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv $inputfile | grep -n I | cut -d ':' -f 1
Bạn cũng có thể tham khảo bài viết tôi đã viết về cách tạo nội dung phù hợp khung ABR phù hợp here.
Để có độ chính xác đầy đủ, bạn nên sử dụng 'frame = key_frame'. Có thể có I-frames không phải là khung hình chính. – Mulvya
- 1. Sử dụng ffmpeg để thay đổi tốc độ khung hình
- 2. Sử dụng một khoảng thời gian thay đổi trong một khoảng thời gian trong Postgres
- 3. Kiểm tra khoảng khung chính?
- 4. Làm cách nào để thay đổi khoảng thời gian LocationRequest
- 5. Thay đổi khoảng thời gian của các toán tử RX?
- 6. Xóa khoảng thời gian khi văn bản bên trong khoảng được thay đổi trong Android
- 7. Cách thay đổi thời gian trong DateTime?
- 8. AVCaptureXác định thời gian chính xác khi khung được chụp
- 9. Sử dụng FFMPEG: Cách thực hiện Phát hiện thay đổi cảnh? với mã thời gian?
- 10. Khoảng thời gian thực Scala, Khoảng thời gian Int
- 11. Cách thay đổi Spring's @Scheduled fixedDelay tại thời gian chạy
- 12. Tách một khoảng thời gian thành nhiều khoảng thời gian
- 13. Làm cách nào để nhanh chóng nhóm cột thời gian trong một khung dữ liệu thành các khoảng thời gian?
- 14. Tải lại mô hình Ember trong khoảng thời gian
- 15. FFmpeg - Thay đổi độ phân giải của video với tỷ lệ khung hình
- 16. Điều chỉnh tốc độ khung hình MPG4 trong ffMpeg
- 17. Máy chủ SQL - Chọn khoảng thời gian không có thay đổi trong dữ liệu
- 18. Tổng số khung hình có ffmpeg
- 19. Ứng dụng Android để thay đổi hình nền theo các khoảng thời gian đều đặn bằng cách sử dụng Timer
- 20. Cách thay đổi khoảng thời gian trục x của biểu đồ
- 21. Thay đổi Font trong thời gian chạy
- 22. Tìm khoảng thời gian tiểu học trong khoảng thời gian chồng chéo
- 23. Thay đổi hướng trong thời gian chạy
- 24. Khoảng thời gian LocalDate trong thời gian Joda
- 25. Chuyển đổi cột dấu thời gian thành các khoảng thời gian trong gấu trúc
- 26. Thay đổi khoảng thời gian của lưới và chỉ định các nhãn đánh dấu trong Matplotlib
- 27. Sqlalchemy nhận hàng trong khoảng thời gian
- 28. Xử lý khoảng trống khoảng thời gian trong Chaco
- 29. Android - Thay đổi bố cục đoạn trong thời gian chạy
- 30. Tạo một CATextlayer thay đổi tại một khoảng thời gian trong AVMutableVideoComposition
Cảm ơn vì điều này ... và bạn nói đúng, thường xuyên hơn không, rối tung với khoảng thời gian khung hình chính là rối tung với chất lượng. –
Bạn có bất kỳ nguồn nào nói rằng "nếu chúng tôi đặt khoảng thời gian khung chính, điều gì đó xấu xảy ra với chất lượng"?! –
Điều này làm giảm chất lượng hoặc tốc độ bit. Mã hóa thông minh sẽ đặt khung hình chính khi có một khung cảnh để các khung trong tương lai có thể có tham chiếu rõ ràng. Nếu bạn buộc khoảng thời gian này, khung hình chính sẽ không được tối ưu ở tất cả các khung trong tương lai và điều này sẽ làm tổn thương toàn bộ luồng. – Ely