Tôi có một video mpeg4 ở 25fps. Video này chỉ chứa một khung hình tĩnh. Tôi đang cố gắng giảm tốc độ khung hình xuống 1 khung hình / giây và chuyển đổi video thành x246 (mp4).
Tôi đã chạy lệnh ffmpeg sau:
ffmpeg -i vid.avi -acodec aac -ar 32000 -ab 64k -ac 2 \
-vcodec libx264 -strict -2 -y -r 1 -force_key_frames 0 vid.mp4
FFmpeg sau đó giảm rất nhiều khung cho đến khi nó chèn khung hình chính đầu tiên. Đôi khi hình ảnh chỉ xuất hiện sau 16 hoặc 20 giây.
Tôi tập hợp ffmpeg không chèn keyframe ngay từ đầu.
Có ai biết làm thế nào tôi có thể lấy khung đầu tiên của vid.avi và sử dụng nó làm khung chính cho vid.mp4 không?
vâng, tôi đã thử mà không có -force_key_frames 0 và với -force_key_frames 1, nhưng điều đó không có ích. Tôi khá bế tắc.
—
Bodacydo
Là làm chính xác theo cách này yêu cầu? Tôi sẽ đoán một cách hoang dã và giả sử như sau: âm thanh là trọng tâm của video. Hình ảnh không phải là một mối quan tâm lớn. Bạn không thể trích xuất mp3 từ video (dĩ nhiên là không mất chất lượng) và sau đó, có được hình ảnh, thậm chí có thể là ảnh chụp màn hình nếu bạn tuyệt vọng, sau đó tạo video mới trong ffmpeg bằng cách sử dụng mp3 và hình ảnh được trích xuất bằng khung hình / giây được đặt thành 1?
—
Travis Crum
Các force_key_frames cú pháp cho việc sử dụng số khung là
—
robd
-force_key_frames "expr:eq(n,0)"
Tôi khá chắc chắn rằng vấn đề gốc ở đây là một cái gì đó khác. Bộ mã hóa luôn bắt đầu với một khung hình chính.
—
Gyan
-force_key_frames 0
? Cũng có thể muốn thử thay đổi 0 thành 1 để thay vào đó bắt đầu ở khung đầu tiên-force_key_frames 1