ffmpeg - могу ли я обмануть ffmpeg, думая, что скрипт Python-это камера?

Я хотел бы передавать кадры из одного скрипта Python (A) в другой (B), чтобы B получал их так же быстро, как A может их создавать. Все, что я видел с ffmpeg, занимает целое видео или потоки с камеры. Я думаю, что я хотел бы сделать, это рассматривать скрипт Python как камеру, которая генерирует кадры.

Я видел это: http://zulko.github.io/blog/2013/09/27/read-and-write-video-frames-in-python-using-ffmpeg/ но я не хочу отправлять выходные данные в видеофайл, Я хочу, чтобы другой сценарий прочел это. Во всяком случае, я также получил ошибку сломанной трубы, используя этот код.

28
задан Chris Anderson
08.05.2023 4:05 Количество просмотров материала 2612
Распечатать страницу

1 ответ

ffmpeg может читать из STDIN, поэтому все, что вам нужно сделать, это передать кадры из вашего скрипта в ffmpeg через этот поток в некотором формате, который понимает ffmpeg.

например, если я использую ffmpeg для декодирования видеопотока в отдельные кадры, используя YUV420P в качестве формата пикселей, я могу прочитать их обратно, но мне просто нужно снова указать размеры, частоту кадров и формат пикселей:

ffmpeg -i input.mp4 -f rawvideo - | \
ffmpeg -f rawvideo -s 1920x1080 -r 60 -pix_fmt yuv420p -i - output.mp4

конечно, если вы можете транслировать допустимые форматы из вашего скрипта-и желательно потоковые форматы, такие как MPEG-2 TS – тогда ffmpeg, конечно же, также сможет прочитать его.

2
отвечен slhck 2023-05-09 11:53

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх