周末闲的无聊,带着十分放松的心情, 看看pd17 sdk的code, 特别是jack雷+廖dongdong写的代码:dvmi_vod.c
在看code之前:先说说我做过的一些“无聊”的事情,一般人都不这样做,一般人觉得这样做有啥意思?一般人也不好这口。
码流分析:
1,直播:我们大网总共多少个频点,每个频点有几个节目,每个节目视音频码率多少,高清标清,mepg2,ac3,dolby_E,dolby_plus.
用小莫的录流工具,把每个频点都录制100M文件的大小,然后去分析,得到以上参数。
点播:用jack雷说的那个dump方法:多点播几个大片,配合王剑说的那些vod点播无声音的片子。把数据都dump出来,然后分析。
我们的目的是:用最少buffer的缓冲器,去分析得到video,audio codec, 然后送给解码器。
如果你再参考vlc的source code, live555.
理论指导:
你至少得看3本书,国家标准,然后再去写code:ISO 13818-1,-2,-3, A52. 700436等。
这个时候,你心理就有数了:去分析pat,pmt, 去创建多大的buffer合适。pat,pmt至少每100毫秒就一次。
有了实践分析,有了理论指导,现在有资格来谈code了.
针对 vod的点播无音频的bug:
动动他们给的解决方法是: 改法1:增大kernel 内存2M,减小noncache2.5M,增大vod buffer 0.5M
其实根本不用更改kernel内存,
原来的code: _Vod_Buff_Create(0x100000); 各位这里已经占了1M内存了,这里写成0.5M足够了。某些地方还得略调下。
然后增加:#define MI_DEMO_INJECT_VIDEO_MAX_PRE_BUFFER_MS 1500 //1000ms
因为我实在不想动 kernel内存大小,但PD17项目已经结束了.
但视频点播是永恒的话题,DVMI_VOD_playIpStream更是到处都用,将来安卓盒子也是IP播放,未来智能手表上播放H264,那得需要多大内存,如何做到最优?
深圳的那几个人还老爱跑步,劈里啪啦的,还真能贼坚持。 那就稍微回想一下自己过去多牛,比一比,明天怎么做到更牛?