小编Ven*_*qui的帖子

如何使用子进程 (Python) 将 Picamera 视频传输到 FFMPEG

我看到了大量有关将 raspivid 流直接传输到 FFMPEG 以进行编码、混合和重新流式传输的信息,但这些用例主要来自 bash;相似:

raspivid -n -w 480 -h 320 -b 300000 -fps 15 -t 0 -o - | ffmpeg -i - -f mpegts udp://192.168.1.2:8090ffmpeg

我希望利用 Picamera 库的功能,这样我就可以使用 OpenCV 和类似方法进行并发处理,同时仍然使用 FFMPEG 进行流式传输。但我不知道如何正确打开 FFMPEG 作为子进程并将视频数据传输给它。我见过很多尝试、未答复的帖子声称已经这样做的人,但似乎没有一个在我的 Pi 上工作。

我应该使用 Picamera 创建视频缓冲区并将原始视频通过管道传输到 FFMPEG 吗?我可以使用 camera.capture_continuous() 并将我用于 OpenCV 计算的 bgr24 图像传递给 FFMPEG 吗?

我已经尝试了各种变体,但我不确定我是否只是误解了如何使用子流程模块、FFMPEG,或者我只是缺少一些设置。我知道原始流不会有任何元数据,但我不完全确定我需要给 FFMPEG 什么设置才能理解我给它的内容。

我有一个 Wowza 服务器,我最终将流式传输到,但我目前正在通过流式传输到笔记本电脑上的 VLC 服务器进行测试。我目前试过这个:

import subprocess as sp
import picamera
import picamera.array
import numpy as np

npimage = np.empty(
        (480, 640, …
Run Code Online (Sandbox Code Playgroud)

python subprocess ffmpeg raspberry-pi3

5
推荐指数
1
解决办法
4777
查看次数

标签 统计

ffmpeg ×1

python ×1

raspberry-pi3 ×1

subprocess ×1