Nó rất đơn giản với ffmpeg và nó có thể xuất ra một khung hình mỗi N giây mà không cần thêm kịch bản. Để xuất dưới dạng chuỗi hình ảnh, chỉ cần sử dụng myimage_%04d.pnghoặc tương tự như đầu ra. Các %0xdbit được chuyển đổi sang một zero-đệm số nguyên xchữ số dài - ví dụ tôi đã nhận được đầu ra như
myimage_0000.png,
myimage_0001.png,
myimage_0002.png
Vân vân..
Bạn có thể sử dụng nhiều định dạng hình ảnh tĩnh, png, jpeg, tga, bất cứ điều gì (xem ffmpeg -formatsdanh sách đầy đủ).
Bây giờ chúng ta đã biết cách xuất phim thành một chuỗi hình ảnh, nhưng nói rằng chúng ta không muốn xuất từng khung hình?
Mẹo nhỏ là chỉ cần thay đổi tốc độ khung hình của đầu ra thành bất cứ điều gì chúng ta muốn bằng cách sử dụng -r ntùy chọn trong đó nsố lượng khung hình mỗi giây. 1 khung hình mỗi giây sẽ là -r 1, cứ sau bốn giây lại có -r 0.25một khung hình, cứ sau mười giây lại có một khung hình -r 0.1.
Vì vậy, để kết hợp tất cả lại, đây là cách nó sẽ lưu một khung hình input.movcứ sau bốn giây output_0000.png, output_0001.pngv.v .:
ffmpeg -i input.mov -r 0.25 output_%04d.png
Lưu ý rằng -r 0.25tùy chọn đi sau khi các -i input.movphần, bởi vì nó kiểm soát tỷ lệ khung hình của đầu ra . Nếu bạn đặt nó trước đầu vào, nó sẽ xử lý tệp đầu vào như thể nó có tốc độ khung hình được chỉ định.
Thay đổi% xd thành nhiều chữ số bạn cần, ví dụ: nếu lệnh sẽ tạo hơn 10.000 khung thay đổi %04dthành %05d. Điều này cũng hoạt động cho các tập tin đầu vào là chuỗi hình ảnh. Đọc thêm ở đây .
Người dùng Windows : Trên dòng lệnh sử dụng%
thí dụ: ffmpeg -i inputFile.mp4 -r 1 outputFile_%02d.png
Trong tập lệnh CMD và BAT sử dụng %%
thí dụ: ffmpeg -i inputFile.mp4 -r 1 outputFile %%02d.png
Vì vậy, tăng gấp đôi %%trong các tập lệnh và đơn %trên dòng lệnh tương tác. Làm cho nó sai trong cả hai trường hợp sẽ tạo ra một lỗi.