在c中使用mp4v2的库——准备工作

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值