修改output-example,将H.264,AAC帧保存到mp4容器中

这篇博客介绍了如何利用ffmpeg 0.8版本,将编码后的H.264视频帧和AAC音频帧封装到MP4容器中,详细讲解了该过程的关键步骤和技术细节。
摘要由CSDN通过智能技术生成

2012/11/26更新
根据网友反馈,原来的下载链接编译有问题,原因是头文件和库文件的路径没有设置好,已经修改。
下载链接:
http://download.csdn.net/detail/ajaxhe/4810984

2012/10/25更新

在add_video_stream()中添加

c->cqp  = 32;//很关键的参数,不设置的话会导致马赛克,而且它的大小决定着编码的速度和编码后帧的大小


ffmpeg版本:0.8

开发环境:VS2008

遇到的错误:
1. Specified sample_fmt is not supported.
[aac @ 000E6E60] Specified sample_fmt is not supported.
could not open audio codec

设置AVCodecContext *c的sample_fmt位,如:
c ->sample_fmt AV_SAMPLE_FMT_S16 ;

2. Too many bits per frame requested
[aac @ 004D6E60] Too many bits per frame requested
could not open audio codec

设置AVCodecContext *c的bit_rate位,bit_rate = sample_rate * channels * 2,其中的“2”指的是sample_fmt为16位的缘故,相应的设置如下:
c ->sample_rate = 8000;
c-> channels = 1;
c-> bit_rate = 16000;

遇到的warning:
1. [mp4 @ 006C3580] Codec for stream 1 does not use global headers but container format requires global headers
因为保存的文件时mp4格式,需要设置c->flags的CODEC_FLAG_GLOBAL_HEADER,如下:
// some formats want stream headers to be separate
if(! strcmp( oc-> oformat-> 
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值