工作上遇到这样的需求,录制六路视频,一路音频,合成ts流通过网络发送到指定udp地址,先说下思路:

1.收到六路摄像头数据流,分别进行Demux,并记录对应的的索引号赋值给对应的packet->stream_index;

2.初始化Mux时,根据实际有几路视频流和音频流创建对应的视频流和音频流,然后是有几路视频流就创建几个节目

av_new_program,最后把对应的节目id和流索引加入输出的上下文。
3.在Mux线程里不断从队列里取出数据,需要根据之前的流索引计算pts和dts,可以用一个数组保存pts;

下面把一些关键代码贴出来,仅供参考:

Demux出来后回调到Mux队列里

多路视频和多路音频合成录制ts流

Mux初始化:

多路视频和多路音频合成录制ts流

多路视频和多路音频合成录制ts流

多路视频和多路音频合成录制ts流

当然也可以把合成后的ts流发送到指定的组播地址。

相关文章:

  • 2021-07-15
  • 2022-01-25
  • 2021-11-09
  • 2021-06-09
  • 2022-01-31
  • 2021-12-23
  • 2022-01-18
  • 2021-12-04
猜你喜欢
  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
  • 2021-12-06
  • 2022-12-23
  • 2021-07-18
  • 2021-09-27
相关资源
相似解决方案