cscscheng 发表于 2012-10-14 13:19:10

OMXplayer 如何无缝播放多个文件.

我的想法是用omxplayer做个 网络机顶盒..就是直接从pplive啊啥的网络上获取视频流.解码播放.
问题是分析pplive的码流是ts的方式提供的..一个ts文件5秒.
.现在我是每个文件播放完了就close一次..这样会出现短暂的黑屏.(大约1秒,5秒钟就黑一秒.没法看啊.).
如果我把多个ts流写成一个文件播放.音频正常..视频有卡顿...简单分析了下ts文件..音频的dts 和pts是正常的递增的..
但是视频的DTS和PTS是每个ts流都是单独从0开始的..(但是我手动矫正..根据duration和fps校正了,.还是那样.)

有哪位大侠对omxplaer很有研究啊..诶...ffmpeg的库也不了解啊....
请求大侠指点指点..

raspwhat 发表于 2012-10-14 14:55:14

不太懂这个,帮顶。

ukonline2000 发表于 2012-10-14 15:42:29

推荐你去作者的git上看看源码,上面会有一些操作很功能的介绍,希望对你有帮忙

https://github.com/huceke/omxplayer

cscscheng 发表于 2012-10-15 15:28:27

回 ukonline2000 的帖子

ukonline2000:推荐你去作者的git上看看源码,上面会有一些操作很功能的介绍,希望对你有帮忙

https://github.com/huceke/omxplayer (2012-10-14 15:42) images/back.gif

谢谢U老大..有空去看看..只有周末有空研究..哈哈..

x-magic 发表于 2012-10-16 06:33:24

直接活用bash的连接符就能做到
http://blog.csdn.net/finewings/article/details/6077165

ex. omxplayer file1.avi;omxplayer file2.avi;omxplayer file3.avi
以此类推,中途不看了可以直接control+c

cscscheng 发表于 2012-10-16 09:23:33

回 x-magic 的帖子

x-magic:直接活用bash的连接符就能做到
http://blog.csdn.net/finewings/article/details/6077165

ex. omxplayer file1.avi;omxplayer file2.avi;omxplayer file3.avi
以此类推,中途不看了可以直接control+c (2012-10-16 06:33) images/back.gif

这样做肯定会中间出现黑屏的...
程序每次初始化的时候都会初始化视频,音频,初始化的时候出现黑屏.声音也会出现bo的一声响的

cscscheng 发表于 2012-10-19 16:56:43

看FFMPEG的代码才发现直接支持m3u8文件播放的..对于直播的m3u8可以直接连续播放了.
不过点播的录像一般也是分成10个片段的..还是需要修改才能连续播放...
主要修改CFile::Read函数..这个函数不返回eof...AV_READ_frame就会一直读取帧数据.
所以可以做个欺诈..让播放器以为文件没结束..这样就可以持续播放..但是必须是一致的码流.(分辨率,编码格式等.).否则解码出错.
简单测试是可行...但是..码流上的PTS 经常不对....
页: [1]
查看完整版本: OMXplayer 如何无缝播放多个文件.