hình ảnh ống ffmpeg trích xuất từ ​​video


8

Tôi có thể sử dụng lệnh sau để trích xuất hình ảnh từ video bằng ffmpeg, lưu chúng vào hệ thống tập tin:

... | ffmpeg -i - -f image2 'img-%03d.png'

Tôi muốn chuyển các hình ảnh này sang một ứng dụng khác, thay vì lưu chúng vào hệ thống tập tin - cách chúng được phân tách trong đường ống rất ít quan trọng, vì đó sẽ là tập lệnh NodeJS mà tôi tự điều khiển.

Những điều sau đây không hoạt động:

... | ffmpeg -i - -f image2 pipe: | ...

Lỗi với

[image2 @ 0xe1cfc0] Could not get frame filename number 2 from pattern 'pipe:' (either set updatefirst or use a pattern like %03d within the filename pattern)
av_interleaved_write_frame(): Invalid argument

Có cách nào để loại bỏ hình ảnh được trích xuất từ ​​video bằng ffmpeg mà không cần sử dụng hệ thống tập tin không?


Hãy thử-f png - | ...
Gyan

@Mulvya Điều này dẫn đến lỗi với [NULL @ 0x10e2860] Requested output format 'png' is not a suitable output format pipe:: Invalid argument.
Birjolaxew

2
Hãy thử -f image2pipe -vcodec png - | .... PNG có thể không hoạt động, nếu vậy đầu ra sẽ là MJPEG sau khi loại bỏ vcodec.
Gyan

@Mulvya Điều đó đã thực sự làm việc. Cảm ơn bạn rất nhiều :)
Birjolaxew

Câu trả lời:


7

có, có!

thêm đối số -f image2pipevà chỉ định tên tệp đầu ra là một hypen đơn ( -trong ngữ cảnh này có nghĩa là stdout) và chỉ định tên tệp đầu vào cũng là một hypen duy nhất ( -i -trong ngữ cảnh này có nghĩa là stdin) và chỉ định rõ định dạng đầu ra (ví dụ cho png : -c:v png), đây là một ví dụ hoàn chỉnh:

ffmpeg -i - -ss 00:00:3 -s 650x390 -vframes 1 -c:v png -f image2pipe -
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.