mplayer在android上的音视频不同步问题

chenqing221284 2011-05-04 12:43:26
大家好:
最近,成功地将mplayer移植到了android(版本为2.3)平台,并将vo,ao部分分别改成 android的surface与audiotrack.
目前,音视频都可以正常地输出显示,碰到一个棘手的问题,音视频不同步的问题.播放流文件的时候,视频画面显示很流畅,但是声音总是比视频要快,很是苦恼!初步看了mplayer的音视频同步的原理,初步怀疑是由于ao_android.c(android的音频输出模块)的get_space(.)与get_delay(.)函数的返回值引起的不同步(在虚拟机下面查看了 ao_oss.c的实现).
希望知道的朋友,多多交流,共同提高!谢谢!
...全文
927 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenqing221284 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 oexpress 的回复:]
不同步的原因很多,有可能是解码器效率太慢,有肯恩更是PTS设置的不对,也有可能你你的surfaceflinger与audioflnger的逻辑又问题
[/Quote]
pts这个是流文件里面就有的,至于audioflinger这个,感觉跟mplayer里面的ao_oss.c里面的不一样,
如果能够操作dsp的话,那样就好解决问题了.
CyberLogix 2011-05-22
  • 打赏
  • 举报
回复
不同步的原因很多,有可能是解码器效率太慢,有肯恩更是PTS设置的不对,也有可能你你的surfaceflinger与audioflnger的逻辑又问题
nxlhlg 2011-05-20
  • 打赏
  • 举报
回复
牛人,能共享一下你的代码吗?
chenqing221284 2011-05-19
  • 打赏
  • 举报
回复
盼望高手分享经验,多多指教!谢谢!
chenqing221284 2011-05-13
  • 打赏
  • 举报
回复
自己写了个根据音频的带宽来控制的接收数据的算法,有所改善.
问一下,android上面还支持其它的音频输出么,譬如mplayer下面的ao_oss.c,ao_alsa.c等等.
chenqing221284 2011-05-06
  • 打赏
  • 举报
回复
希望大家多多指教!特别是知道的朋友!
FrankBIBI 2011-05-05
  • 打赏
  • 举报
回复
mark!以前也碰到了,一直没去弄 呵呵 帮顶!
coding码场 2011-05-05
  • 打赏
  • 举报
回复
帮顶!难道时间戳上av的时钟不一致
iceternally 2011-05-05
  • 打赏
  • 举报
回复
是固定的快一点儿,还是不稳定的快快慢慢的?
chenqing221284 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iceternally 的回复:]
是固定的快一点儿,还是不稳定的快快慢慢的?
[/Quote]
这个,没有什么固定的规律的!
chenqing221284 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lightsoure 的回复:]
mark!以前也碰到了,一直没去弄 呵呵 帮顶!
[/Quote]
大家讨论讨论!
chenqing221284 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yiyaaixuexi 的回复:]
我很感兴趣关于 将mplayer移植到了android的问题
若是ao_android.c(android的音频输出模块)的get_space(.)与get_delay(.)函数的返回值引起的不同步那真是好深。希望可以从surface与audiotrack下手,在特定条件下,对音频输出延时,比较好操作。只是时间不好掌控。
[/Quote]
现在的做法,是在自己写的音频输出模块(ao_android.c)中的get_space(.)接口中,每次都返回一个固定的大小,暂定为8192.在测试ao_oss.c中的这接口的时候,发现并不是每次都返回一个大于零的大小的,有的时候返回结果为零.于是,写了一个简单的算法,比如,返回几次固定大小之后,就返回一个零.测试的时候,发现效果好多了,音频没有那么快了.这个只能暂缓问题,还是不能从根本上解决问题!有兴趣的话,大家可以一起研究一下!
念茜 2011-05-04
  • 打赏
  • 举报
回复
我很感兴趣关于 将mplayer移植到了android的问题
若是ao_android.c(android的音频输出模块)的get_space(.)与get_delay(.)函数的返回值引起的不同步那真是好深。希望可以从surface与audiotrack下手,在特定条件下,对音频输出延时,比较好操作。只是时间不好掌控。
MPlayer 一样从 Linux 平台移植而来的 KMPlayer (简称KMP)几乎可以播放您系统上所有的影音文件。通过各种插件扩展 KMP 可以支持层出不穷的新格式。当然 KMPlayer 也推出了 Android 哦。KMPlayer 播放器作为一款经典的播放器是您电脑放电影不可缺少的工具哦。 来自韩国的影音全能播放器 KMPlayer 中文版来自韩国的影音全能播放器 KMPlayer 中文版 KMPlayer 简称 KMP,早期名叫WaSaVi播放器。作者姜龙喜(韩国),历时七年自主开发的朝鲜语多媒体图形视窗工程免费项目。KMPlayer是一套将网络上所有能见得到的解码程式(Codec)全部收集于一身的影音播放软件;此外,KMPlayer还能够播放DVD与VCD、汇入多种格式的外挂字幕 档、使用普及率最高的WinAMP音效外挂与支援超多种影片效果调整选项等。 KMPlayer – The Professional Media Player!,它支持 Winamp 2/5 的输入、常规、DSP、视觉效果、媒体库插件。无须注册表支持直接调用 Directshow滤镜!FFdshow 的视觉特效系统~超强的 GUI 界面~安装电视卡后可以直接代替原软件直接收看电视~支持播放 DVD/VCD 以及绝大多数电脑的媒体文件(AVI 支持 Xvid/DivX/3vid/H264 OGG/OGM/MKV 容器/AC3/DTS 解码~Monkey Audio 解码~)此播放器除了会将自己的配置信息写入注册表外绝对绿色!KMplayer内置常见的所有解码器,包括real,QT等。 KMPlayer以其强大的操控功能在众多免费播放器中逐渐显示其开发实力。底层调用了WMP的内核DirectShow。外部同时支持临时挂接Windows下的全部解码器。通过各种插件扩展,KMP可以支持层出不穷的新格式。直接从Winamp继承的插件功能,能够直接使用winamp的音频 、输入、视觉效果插件;而通过其独有的扩展能力,只要你喜欢,可以选择使用不同解码器对各种格式进行解码。 只要安装了它,你不用再另外安装 一大堆转码程序,就能够顺利观赏所有特殊格式的影片了。 KMPlayer 优势介绍 KMPlayer把网络上所有能见得到的解码程式(Codec)全部收集,支持大多数的影片、音乐、图片等格式。播放影片时可以作多种调整,例如影像过滤、声道、亮度、画面缩放、画面移动、跳转到5秒~10分钟等等。而在播放音乐可以设定音乐模式、Bass、立体声等等,也可载装Winamp的插件。支持自定按键,支持更换Skin。支持撷取影片画面和声音的功能,不再需要安装其他的软件就能把声音或影片画面撷取出来。 KMPlayer强大的档案支援功能深受用家欢迎,支持的影片档包括:AVI、RealMedia、MPEG 1/2/4.ASF、MKV、OGM、、FLV、VCD、SVCD、MP4等;AVI 支援 Xvid/DivX/3vid/H264 OGG/OGM/MKV 容器/AC3/DTS 解码Monkey Audio 解码等。支援的声音档:APE、MP3.WAV、MPC、Flac、MIDI等。支援的图片档:BMP、 GIF、JPEG、PNG等。支援BIN、ISO、IMG、NRG制成的音乐格式光碟影档。 捕获功能 Kmplayer可以说是影音播放器中的全能王。或许你只用它来听音乐、看电影,如果仅仅是这样的话,也真对不起开发者了。实际上Kmplayer有很多优点,捕获功能就是其中一个,下面我们来看看。 KMPlayer 中文版 1.捕获音频:选择此项后,会弹出“音频捕获”对话框,在这里可以指定输出路径及文件名,然后单击“开始”按钮,即可将当前正在播放的视频的音频信息保存在一个MP3文件当中,简单说就是将电影的声音提取出来。 优点:方便,声音捕获与电影观看同步,不影响观看效果,且无需占用额外时间。 适用场合:当看到经典的外国原声大片时,将音频信息捕获下来放到MP3中,对英语学习有帮助。 2.捕获视频文件:一般来说捕获视频文件视频选项最好选择直接复制视频流(仅对h.264/avc等编码的视频有效),因为kmplayer本身不安装编码器的情况下是无法正确重编码捕获视频的。音频自然推荐用ac3编码器。最好是下载一个x.264vfw编码器,这样的话即使是非h.264/avc等编码的视频在不能使用直接复制视频流的情况下也能通过重编码视频流来正常捕获视频文件了。 优点:同捕获音频类似,可实现边看边转换且无需额外的转换软件。 适用场合:从网上下载的影片大部分是RM或RMVB格式的,Nero不支持,就有必要将其转换成AVI格式。 3.“捕获画面(您所看到的)为…”:实现对影片截图。经常写稿的朋友可

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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