Tôi muốn sử dụng ffmpeg để cắt một tệp video ở một số khung chính xác.
Hãy xem video này . Đầu tiên, tôi nhận được một khung ở 25 giây:
ffmpeg -i sintel_trailer-1080p.mp4 -ss 25 -vframes 1 25.png
Lưu ý rằng tôi sử dụng -ss
tùy chọn postfix , vì vậy tìm kiếm phải chính xác khung. Đây là hình ảnh của tôi:
Sau đó, tôi cắt video ở 25 giây bằng cách sử dụng sao chép luồng và kiểm tra khung đầu tiên của nó:
ffmpeg -i sintel_trailer-1080p.mp4 -ss 25 -c copy cut.mp4
ffmpeg -i cut.mp4 -vframes 1 0.png
Khung đầu tiên là khác nhau:
Nhưng nếu tôi thay thế tùy chọn sao chép luồng bằng một số định dạng hoặc codec video khác, khung đầu tiên là chính xác:
ffmpeg -i sintel_trailer-1080p.mp4 -ss 25 -f avi cut.avi
ffmpeg -i cut.avi -vframes 1 0_1.png
Có thể hoàn toàn có thể tìm kiếm khung chính xác với chế độ sao chép luồng?
Trong ứng dụng của tôi, người dùng sẽ có thể chọn một khung và bắt đầu một quá trình sẽ cắt video chính xác ở khung đó. Trong trường hợp này, tôi không cần bất kỳ chuyển đổi video nào nhưng đồng thời tôi không thể thực hiện chế độ sao chép luồng chính xác.