Мое текущее приложение читает кадр за кадром из потока RTMP, используя cv :: VideoCapture, вносит некоторые изменения в каждый кадр и записывает эти измененные кадры в файл, используя 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 ++, чтобы выполнить команду и записать в стандартный ввод.
Других решений пока нет …