Tôi đã cố gắng trích xuất khung hình chính từ video bằng cách sử dụng ffmpeg 0.11.1. Cho đến nay tất cả các lệnh tôi đã thử không trích xuất khung hình chính nhưng trả về tất cả các khung hình tức là 25fps * tổng số khung thời gian trong đầu ra. Tôi đã thử đặt keyint_min là 25 để đảm bảo có tối đa 1 khung hình chính mỗi giây.ffmpeg keyframe extraction
ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -g 250 -keyint_min 25 -i C:\test.mp4 -vsync 2 -f image2 C:\testTemp\thumbnails-%02d.jpeg
Nhưng vẫn còn tất cả các khung được trả lại.
Sau đó, tôi đã thử, để tách các khung hình chính sau 20 giây.
ffmpeg -i C:\test.mp4 -vf select='eq(pict_type\,I)*(isnan(prev_selected_t)+gte(t-prev_selected_t\,20))' -vsync 0 -f image2 C:\testTemp\%09d.jpg
Cùng một kết quả, tất cả các khung được trả lại.
Tôi nên làm gì?
Xin cảm ơn, nhưng tôi gặp lỗi Lỗi khi khởi tạo bộ lọc chọn với arg. Số lượng mở và đóng 'không bằng nhau vì vậy tôi đã thử thay đổi phần chọn để chọn =' eq (pict_type \, I), setpts = N/(25 * TB) 'và sau đó chọn =' eq (pict_type \, I), setpts = 'N/(25 * TB)' 'Nhưng cả hai đều trả về cùng lỗi –
Xin lỗi. Công việc dán sai. Tôi đã cập nhật lệnh, nhưng tôi không thể kiểm tra vào lúc này. – LordNeckbeard
Tôi nhận được: Thiếu ')' hoặc quá nhiều arg trong 'eq (pict_type \, I)' và sau đó là lỗi khác khi phân tích biểu thức 'eq (pict_type \, I)' –