Video FFMPEG từ hình ảnh xuất hiện cùng thời lượng (chưa chính xác) bất kể tốc độ khung hình


0

Khi tạo video từ chuỗi hình ảnh bằng ffmpeg, tôi thấy rằng tôi nhận được một video có cùng độ dài cho dù mã hóa là 30 khung hình / giây hoặc 60 khung hình / giây. Trong trường hợp hiện tại của tôi, 6329 tệp hình ảnh, hai lệnh sau tạo ra các tệp video có cùng độ dài:

1. ffmpeg -pattern_type glob -i '*.png' -r 30 -pix_fmt yuv420p out-30fps.mp4
2. ffmpeg -pattern_type glob -i '*.png' -r 60 -pix_fmt yuv420p out-60fps.mp4

Với cách trên, ffprobe hiển thị video 1 là 00: 04: 13,17 và được mã hóa ở tốc độ 30 khung hình / giây, trong khi video 2 là 00: 04: 13,15 và được mã hóa ở tốc độ 60 khung hình / giây. Khi được tải vào Quicktime Player, cả hai video đều có cùng độ dài và tốc độ.

Vì vậy, hai câu hỏi:

  1. Tôi bối rối bởi tổng thời lượng video, vì 4m13 giây là tổng cộng 253 giây. Ở tốc độ 30 khung hình / giây, cần có 253 giây yêu cầu 7590 khung hình chứ không phải 6329.

  2. Điều gì được yêu cầu để sử dụng chuỗi khung hình hiện tại như thể đó là nguồn 60fps thay vì 30? Hoặc, đặt một cách khác, làm thế nào để làm cho video cuối cùng có gấp đôi số khung hình / giây trong khi phát lại?

Câu trả lời:


2

Đối với các chuỗi hình ảnh, ffmpeg giả định luồng đầu vào có tốc độ khung hình là 25 nếu không được chỉ định khác. Vì vậy, sử dụng

ffmpeg -pattern_type glob -framerate 60 -i '*.png' -r 60 -pix_fmt yuv420p out-60fps.mp4

Những gì -r 60như một tùy chọn đầu ra làm là tạo ra một luồng tốc độ khung hình không đổi 60 fps. Nếu luồng đầu vào có tốc độ khác nhau, nó sẽ nhân đôi hoặc thả khung để đáp ứng tốc độ này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.