Tạo video từ bó JPEG


2

Tôi có một camera quan sát tải hình ảnh JPEG (.jpg) lên máy chủ FTP khi phát hiện chuyển động. Chúng tôi dường như nhận được khá nhiều hình ảnh, vì vậy tôi muốn biến chúng thành video để dễ xem.

Tôi đã thực hiện một số tìm kiếm Google, nhưng không có gì hoàn toàn tạo ra những gì tôi mong đợi để xem. Thư mục tôi đang sử dụng có hơn 2000 hình ảnh được đặt tên là AyyMMddhhmmssff.jpg. Nếu tôi cần đổi tên, tôi có thể làm điều đó vì tôi đã thấy tôi cần để FFMPEG hoạt động.

Tôi muốn một hình ảnh mỗi giây hoặc có thể 2 mỗi giây để hình ảnh dễ xem khi phát lại video. Có, tôi biết điều đó sẽ dẫn đến video 20/40 phút +!

Tôi hài lòng với giải pháp Windows, macOS hoặc Ubuntu! Sở thích của tôi sẽ là Windows (vì đó là nơi đặt máy chủ FTP).

Hình ảnh

convert *.jpg video.mpg

Điều này nghe có vẻ tuyệt vời, tốt đẹp và đơn giản. Tuy nhiên, tôi đã thử trên máy Mac của mình (được cài đặt qua brew) và Ubuntu và cả hiệu năng của hệ thống tương đối đều dừng lại và sau 20 phút, vẫn chưa kết thúc. Tôi đã phải khởi động lại máy Mac vì tôi không thể làm gì được!

FFMPEG

ffmpeg -y -r 6 -f image2 -s 1920x1080 -i <path>\%06d.jpg -vcodec libx264 -pix_fmt yuv420p <path>/video.mp4

Tôi không phải là chuyên gia khi sử dụng FFMPEG, nhưng tôi đã sử dụng nó cho một số nhiệm vụ và thấy nó là một tiện ích tuyệt vời để có xung quanh. Lệnh trên không tạo ra video, nhưng hình ảnh hiển thị quá nhanh sẽ loại bỏ điểm của video. Tôi đã thử điều chỉnh các giá trị và có thể cải thiện nó, nhưng không chính xác những gì tôi đang theo đuổi. Một lần thử (cài đặt -r 1IIRC) đã tạo ra một hình ảnh duy nhất cho toàn bộ video! Rõ ràng tôi không hiểu các đối số khác nhau trong lệnh FFMPEG mặc dù tôi đã xem hướng dẫn!

Câu trả lời:


3

Nếu bạn đổi tên các hình ảnh được đánh số liên tiếp, thì bạn có thể sử dụng

ffmpeg -y -framerate 1 -i <path>\%06d.jpg -r 5 -c:v libx264 -pix_fmt yuv420p <path>/video.mp4

Số liên tiếp, như trong 000001.jpg, 000002.jpg, 000003.jpg... Lưu ý rằng có chính xác 6 ký tự trong mỗi tên, mà đáp ứng các %06dthông qua vào ffmpeg.

Nếu bạn không muốn đổi tên, thì hãy tạo một tệp văn bản có dạng,

file first.jpg
file second.jpg
file third.jpg
...
file last.jpg

và sau đó

ffmpeg -f concat -r 1 -i list.txt -r 5 -c:v libx264 -pix_fmt yuv420p <path>/video.mp4

Tôi đã đổi tên các hình ảnh theo định dạng "yyyyMMdd_000001.jpg", v.v. nhưng khi tôi chạy lệnh của bạn, tôi nhận được kết quả tương tự mà tôi đã thấy trước đây với FFMPEG của một hình ảnh trong suốt video (41 phút). Cái tên sẽ gây ra cái này hay cái gì khác?!
neildeadman

Thêm -reportvào thực thi của bạn và dán hoặc liên kết để anh ta báo cáo trong Q.
Gyan

Với số lượng hình ảnh đó, nhật ký quá dài để đăng lên pastebin, vì vậy tôi đã giảm số lượng hình ảnh được xử lý, kết quả tương tự: pastebin.com/03CTErCu
neildeadman 29/11/18

Nhật ký cho thấy không có lỗi; nó là như mong đợi Bạn có thể chia sẻ đầu ra?
Gyan

1
Có một lỗi lâu dài với tốc độ khung hình thấp trong VLC. Đã sửa vài tháng trở lại.
Gyan
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.