ffmpeg - Tạo video từ khung hình bắt đầu và cout


18

Tôi tạo một video từ khung hình, và nó hoạt động rất tốt. Vấn đề là tôi không muốn sử dụng tất cả hình ảnh trong thư mục của mình. Tôi có 200 khung trong thư mục của mình, nhưng tôi muốn một video từ 1 đến 100

Làm thế nào tôi có thể speficy số lượng khung hình hoặc kết thúc khung hình?

ffmpeg -start_number n -i test_% d.jpg -vcodec mpeg4 test.avi

Tôi không thể tìm thấy

Cảm ơn!


Tôi không biết nhiều về chương trình này, nhưng nếu nó sử dụng mọi hình ảnh trong một thư mục cụ thể, tại sao không tạo một thư mục mới và chỉ đưa vào 100 khung hình bạn muốn?
philipthegreat

2
Đó sẽ là "giải pháp hack" của tôi nếu không thể làm điều đó với ffmpeg :)
DarkPixel

Câu trả lời:


29

Bạn làm điều này bằng cách nêu số lượng khung hình bạn muốn:

-vframes 100  

Vì vậy, hiệu quả là trong trường hợp của bạn:

ffmpeg -start_number 1 -i test_%d.jpg -vframes 100 -vcodec mpeg4 test.avi

Bạn có thể cần chỉ định các tham số khác như pix_fmtvv tùy thuộc vào các yếu tố khác.

Ngoài ra, thông thường người ta sử dụng một cái gì đó giống như test_%05d.jpgvới chuỗi được đánh số có các số 0 trước và 5 chữ số. Nếu bạn không có nó ở định dạng đó, bạn có thể cần phải sử dụng mô hình toàn cầu. Xem này .


3

Đây là mã luôn hoạt động tốt cho tôi.

ffmpeg -i yourfile.mp4 -r 1 -ss 15 -t 16 -f image2 snapshot.jpg
                                ^     ^ 
                                ^     ^
                              start  end
                               time   time

thời gian chỉ tính bằng giây. Nếu nó đi trước guồng 2 phút, thì nó là 120. Một tệp hình ảnh luôn có giá trị một giây, do đó hãy tính hình ảnh mong muốn của bạn theo cách tiếp cận đó.

yourfile.mp4 = clip phim của bạn

snapshot.jpg = tập tin hình ảnh mới của bạn

QUAN TRỌNG: để lại image2 một mình. Đó là cách duy nhất để có được những gì tôi muốn.


4
Tôi đánh giá cao lệnh này, bởi vì nó hoạt động với cái cũ ffmpegmà tôi phải sử dụng ngay bây giờ; điều duy nhất -tkhông phải là "thời gian kết thúc", man ffmpegnói rằng đó là "thời lượng"; vì vậy thời gian kết thúc sẽ là bắt đầu + thời lượng. Chúc mừng!
sdaau
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.