#video-streaming #rtmp #pyav
Вопрос:
У меня есть одна IP-камера, и каждый раз я обрабатываю один кадр, снятый OpenCV, и выводю два снимка. Затем я транслирую эти две картинки по разным адресам rtmp одновременно, например, один «rtmp://ip:порт/live/stream1», другой «rtmp://ip:порт/live/stream2». Со стороны сервера я тяну эти два потока по ПЯВ
import os
import av
from multiprocessing import Pool
# change src for your need
src_dict = {
'background' : "rtmp://ip:port/live/stream1",
'feature' : "rtmp://ip:port/live/stream2"
}
def frame_process(src):
container = av.open(src_dict[src], 'r')
stream = container.streams.video[0]
print(stream.time_base)
for frame in container.decode(stream):
frame.to_image().save(src '-frame-d.jpg' % frame.index)
if __name__=='__main__':
print('Parent process %s.' % os.getpid())
p = Pool(2)
for i in ['background', 'feature']:
p.apply_async(frame_process, args=(i,))
p.close()
p.join()
print('Child process end.')
и мне нужно синхронизировать эти два потока «фон» и «функция», чтобы изображение с двух кадров было получено из одного исходного изображения, как я описал выше. Затем соедините эти две картинки.
Может ли кто-нибудь дать несколько советов о том, как я могу синхронизировать эти два потока? Проблема заключается в том, могу ли я добавить некоторую дополнительную информацию в протокол RTMP при потоковой передаче видео, например, информацию о 16 байтах для слияния двух изображений.
Спасибо! рука