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.png
hoặc tương tự như đầu ra. Các %0xd
bit được chuyển đổi sang một zero-đệm số nguyên x
chữ 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 -formats
danh 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 n
tùy chọn trong đó n
số 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.25
mộ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.mov
cứ sau bốn giây output_0000.png
, output_0001.png
v.v .:
ffmpeg -i input.mov -r 0.25 output_%04d.png
Lưu ý rằng -r 0.25
tùy chọn đi sau khi các -i input.mov
phầ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 %04d
thà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.