有关音视频同步的一个疑惑

macrojj 2010-12-14 08:00:13
假如我的音频 采样率是 8000
然后 视频是30帧/s

在发送端, 我打上时间戳。 音频包这秒的数据 0-7999个
视频包这秒的数据 0-30包

在我的接收端 按照音频同步来做


当我收到第 N个音频包的时候 判断播放 第 N/8000*30 帧的数据

问题一 是这样的吗?

问题二 我是每解一个音频包 都要判断现在播放什么视频 还是在 每 30/8000的时候判断

或者 音视频同步我理解错了?
...全文
154 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用音频进行同步,然后隔一段时间矫正一下。
CyberLogix 2010-12-15
  • 打赏
  • 举报
回复
必须要有一个参考时钟,这样才能有一个时间轴
macrojj 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dengzikun 的回复:]

引用 4 楼 macrojj 的回复:
现在我有一个疑问。

如果我按照音频来同步 寻找应该播放的视频帧。但是该视频帧,目前我还没收到怎么办。 是等待 还是继续播放。丢弃该帧的渲染。


这么做会有问题的。
首先要在接收端恢复音视频包的相对时间关系,
然后根据这个相对时间关系去安排播放。
[/Quote]

但是你考虑到这个时延怎么控制了没? 我可能都没有收到对应的包 怎么安排时间
dengzikun 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 macrojj 的回复:]
现在我有一个疑问。

如果我按照音频来同步 寻找应该播放的视频帧。但是该视频帧,目前我还没收到怎么办。 是等待 还是继续播放。丢弃该帧的渲染。
[/Quote]

这么做会有问题的。
首先要在接收端恢复音视频包的相对时间关系,
然后根据这个相对时间关系去安排播放。
macrojj 2010-12-15
  • 打赏
  • 举报
回复
现在我有一个疑问。

如果我按照音频来同步 寻找应该播放的视频帧。但是该视频帧,目前我还没收到怎么办。 是等待 还是继续播放。丢弃该帧的渲染。
dengzikun 2010-12-15
  • 打赏
  • 举报
回复
实时流同步比较简单,音视频在发送端基本都同步好了,
接收端做简单处理即可。比如视频按帧率渲染,音频按
duration播放即可,如果缓冲区上溢,则可以做简单丢包处理,
若下溢,视频可播放前一帧,音频可填入静音数据。
macrojj 2010-12-15
  • 打赏
  • 举报
回复
我现在是这么做的。

在接收端 视频 音频 按照一定的时间间隔渲染。

当解码完毕 丢到一个队列里面去。 如果时间到,取一个节点,播放,如果没有节点,记录下 该节点在规定时间没到,则丢弃。

需要在最初的时候发送一个同步包。设计为视频音频共同传输的一个包。 这个同步包会在传输过程中,经常出现。

如果收到这个同步包, 则更新队列 和定时器。

我觉得我这个方式 比较简单, 也比较适合实时采集 实时传输。
dengzikun 2010-12-15
  • 打赏
  • 举报
回复
媒体间同步,一般是把两个或几个媒体流的时间戳统一到同一个时间轴上进行
同步。统一之后,具体的渲染同步就很好理解了,到音频的播放时间点了就播放音频,
到视频的播放时间点了就播放视频。可以参考RTP,RTCP标准。
参考
dengzikun 2010-12-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 macrojj 的回复:]
引用 5 楼 dengzikun 的回复:

引用 4 楼 macrojj 的回复:
现在我有一个疑问。

如果我按照音频来同步 寻找应该播放的视频帧。但是该视频帧,目前我还没收到怎么办。 是等待 还是继续播放。丢弃该帧的渲染。


这么做会有问题的。
首先要在接收端恢复音视频包的相对时间关系,
然后根据这个相对时间关系去安排播放。


但是你考虑到这个时延怎么控制了没?……
[/Quote]

恢复音视频包的相对时间关系和时延没有关系。
音视频包的相对时间关系是在发送端确定的,无论传输到哪里,这种关系是不变的。

既然已经在接收端能够恢复这种关系,同步播放也不复杂。简单地可以这样实现,
播放器在一个统一的时间轴上持续运行,收到音频包,通过其时间戳计算出在统一时间轴上的
时间,然后安排播放,如果音频包的播放时间等于播放器时间,立即播放。如果音频包的播放时间
早于播放器时间,属于晚到,可以考虑丢弃,如果音频包的播放时间晚于播放器时间,属于早到,
音频包进队列等待播放。

视频处理同音频。
macrojj 2010-12-14
  • 打赏
  • 举报
回复
因为采样率是8000 但是会在缓冲区满的时候再发送
于是 我音频一秒打包16个包

请问 这些音频包 视频包 怎么播放呢
H264编码器标准草案发布时,很多人都觉得H.264太复杂,不宜实用。眨眼间3年过去了,以往的论断、疑惑被如今的现实冲洗的干干净净。一张7.92G的1小时50分的av,分辨720*480,用Ahead dvd ripper,现在用最新的ffdshow h264编码(4线程,码率1500k),需要1小时10分左右。cpu吃不完,占用率在50%左右。 采用H.264编码,将视频文件压缩转换为MP4/3GP/F4V/AVI格式.绿色软件,使用方便,压缩速度快,图像质量好. 本软件使用Windows系统注册解码器进行视频解码.Windows Media Player能够播放的视频格式,本软件都可以进行压缩.对于不支持的视频格式,可以安装解码包,如ffdshow, 影音风暴等. H264编码器功能: 1、四路视频实时预览,也可利用Web界面对多路直播信号远程集中管理进行配置管理, 2、领先的码率控制技术(CBR/VBR),使其能轻松运作于280Kbps~ 6000Kbps之间。 3、可变的GOP结构:I,IP,IBP,IBBP。 4、PCM音频信道。 5、指纹式植入的视频流的音频处理技术,使得视音频实时同步。 6、支持输出文件格式:FLV,MPEG-4,MPEG-2及HTTP,RTSP,UDP网络协议。 7、支持VBR及CBR压缩方式。 8、支持多种分辨率:FULL,D1等; 9、可将录制FLV格式文件再转换为MP4格式文件进行存储; 10、支持自动录制和手工录制; 11、能设定自动录制计划,时间设定为某月某周某日时分秒,自动进行录制; 12、每路直播信号,能设定不同时段的定时任务; 13、可设定录制文件保存路径; 14、支持网络存储,如NASNAS SAN等网络环境。 H264编码器截图:

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧