我当前的应用程序使用 cv::VideoCapture 从 RTMP 流中逐帧读取,对每一帧进行一些修改,然后使用 cv::VideoWriter 将这些修改后的帧写入文件。 现在我需要将这些帧放入新的 RTMP 流而不是文件中。谁能解释我该怎么做?目前我使用 gcc5 和 OpenCV 2.4.13。
最佳答案
将 ffmpeg 命令与选项“-i -”一起使用,此选项指定 ffmpeg 从管道获取输入。标准输入通过管道传输到 ffmpeg 命令,因此只需将图像推送到标准输入即可。
command = 'ffmpeg -i - -f flv [streaming_url]'
import subprocess as sp
proc = sp.Popen(command, stdin=sp.PIPE,shell=False)
proc.stdin.write(frame.tostring())
在 C++ 中找到等效项,以运行命令并写入标准输入。
关于c++ - OpenCV 和 RTMP 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41175675/