Tôi đang quay video bằng FFmpeg và tôi muốn tốc độ khung hình được viết bằng ít nhất là ở ballpark bên phải. Ngay bây giờ tôi lấy tỷ lệ khung hình mà đầu vào của tôi tuyên bố là có và sử dụng nó để đặt tốc độ khung hình (time_base) cho luồng video đầu ra của tôi. Tuy nhiên, điều này đôi khi rất khác so với tốc độ khung hình thực tế mà tôi nhận được (tôi đã thấy luồng xác nhận 50 khung hình/giây nhưng xuất bản ở tốc độ 9 khung hình/giây).Quay video với tốc độ khung hình không xác định bằng FFmpeg
Điều tôi muốn làm là sử dụng bộ hẹn giờ đã trôi qua và đếm các khung hình tôi ghi để tính tỷ lệ khung hình thực tế tôi đã ghi lại khi tôi ghi xong. Tôi có vẻ mặc dù tốc độ khung hình được đặt trong AVStream của tôi được sử dụng trong avcodec_open2 trước khi tôi viết bất kỳ khung hình nào. Nếu tôi đặt nó sau (như trong khi tôi đang viết khung) trong khi ffplay có thể chơi nó (phàn nàn rằng các bit tăng thời gian là 6 không 4) người chơi video khác không thể. Có cách nào để đặt tốc độ khung hình cho toàn bộ tệp sau khi viết khung không? Nếu không phải là có một cách để nói cho các khung hình chính mình một số loại dấu thời gian hoặc tỷ lệ khung hình trong khi tôi đang ghi âm sẽ dẫn đến một tập tin ghi lại hợp lệ?
hi, tôi sẽ xem xét nhiều hơn, nhưng chỉ muốn hỏi về avconv. tìm thấy nó sau khi tìm kiếm google nhanh chóng, có vẻ như nó có thể thay đổi tốc độ khung hình của một tệp. có lẽ bạn có thể viết các tập tin ở một tỷ lệ khung hình tùy ý và sau đó sau khi phát hiện tỷ lệ thực tế, kết thúc bằng văn bản và chạy avconv với tỷ lệ mới? chỉ là một suy nghĩ, không phải là một câu trả lời thực sự;) sẽ tiếp tục tìm kiếm mặc dù. cho tôi biết. – nephi12
avconv là tên nhị phân cho dự án libav. (http://superuser.com/questions/507386/why-would-i-choose-libav-over-ffmpeg-or-is-there-even-a-difference) có một bản tóm tắt khá tốt về tất cả các tên đã có tôi bối rối trong một thời gian. Bất cứ điều gì avconv không nên có thể với các thư viện nó sử dụng. – Chris