您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 2浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

av_interleaved_write_frame

顺其自然~ 发布时间:2022-06-15 11:53:17 ,浏览量:2

场景

音频和视频来自外部来源(麦克风和摄像头),并且无需任何压缩即可捕获为原始数据(即使是视频)。我使用h264编码视频,而没有压缩音频(PCM)。捕获的音频为:16位,44100khz,立体声。捕获的视频为25FPS。

问题

如何进行音视频交替写入?

解决办法

最好的办法是使用此类应用程序将音频/视频捕获为pts和dts时给出的时间戳。因此,这些并非完全实时的时间戳(来自时钟),而是媒体捕获的时间戳。

av_interleaved_write_frame以这种方式写入otput数据包,以使它们正确交织(也许在内部对其进行排队)。 “正确插入”取决于容器格式,但是通常这意味着输出文件中数据包的DTS标记单调增加。

像大多数FFmpeg API一样,不应由具有相同AVFormatContext的两个线程同时调用av_interleaved_write_frame。我假设您使用互斥锁来确保这一点。如果您这样做,则无论是多线程应用程序还是现在都没有关系。

与在单线程应用程序中的方式相同。 Dts通常是由pts的编解码器生成的。 Pts通常来自捕获设备/解码器以及相应的音频/视频数据。

可以使用实时时间戳,但这实际上取决于您获取它们的方式和时间。

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0407s