mp4v2的库是用c++的,我需要将其使用到我的c的代码中。
1、编译出mp4v2的so
2、编写cpp的wrapper代码;
3、在原来的c代码中调用接口代码;
c,c++调用的参考:
http://blog.youkuaiyun.com/sjin_1314/article/details/20958149
http://blog.youkuaiyun.com/maximuszhou/article/details/38559963
http://www.cnitblog.com/windone0109/archive/2015/09/10/42653.html
//使用mp4v2库中遇到的问题参考:
http://www.cnblogs.com/chutianyao/archive/2012/04/13/2446140.html
//mp4相关的信息
http://blog.youkuaiyun.com/jwzhangjie/article/details/8857892
http://yeyingxian.blog.163.com/blog/static/34471242013112711825953/
http://www.cnblogs.com/skyseraph/archive/2012/04/01/2429384.html
//摘录
profile-level-id正好是SPS中的第二至四个字节的base16编码。这三个字节的具体含义是
sps[1] AVCProfileIndication
sps[2] profile_compatibility
sps[3] AVCLevlIndication
如何设值,可以参考 x264/common/set.h,encoder/set.c
AVCProfileIndication,用于声明H.264的profile
enum profile_e
{
PROFILE_BASELINE = 66,
PROFILE_MAIN = 77,
PROFILE_HIGH = 100,
PROFILE_HIGH10 = 110,
PROFILE_HIGH422 = 122,
PROFILE_HIGH444_PREDICTIVE = 244,
};
profile_compatibility含义还不是太清楚,一般设置00
AVCLevlIndication,用于声明H.264的level。level决定了解码器的解码能力,即最大多大的分辨率、帧率、码率。取值参考
http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels
实际设置时,就是level值乘以10,例如level 1.0,设置值就是0x0A。level 3.0,设置值就是0x1E。比较例外的是level 1b,设置值是0x09
//安装vlc,参考:
http://www.unixmen.com/install-vlc-centos-7/
1、
Install EPEL from http://www.unixmen.com/install-epel-repository-centos-rhel-7/
yum install epel-release
2、
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
3、
yum update
yum install vlc