ffmpeg 编码h264 profile如何设置为baseline的问题

使用最新版ffmpeg-0.11 libx264-125,使用默认编码时,用Eyecard发现profile-idc一直是PROFILE_H264_HIGH (profile-idc=100),但是项目要求是baseline,设置了AVCodecContext的->profile=FF_PROFILE_H264_BASELINE也没用,经过多方查找,需要如下解决方法:

[cpp]  view plain copy
  1. AVDictionary *opts = NULL;  
[cpp]  view plain copy
  1. av_dict_set(&opts, "profile""baseline", 0);  
  2. /* open the codec */  
  3. if (avcodec_open2(m_pEncoderCtx, encoder, &opts) < 0)  


 

真是曲折啊。

QQ讨论群:219128816

FFmpeg是一个强大的多媒体处理工具,它可以用来编码和解码视频、音频等多种格式。对于H.264编码,它支持设置多种Profile,这些Profile反映了不同的压缩效率和适配场景。 1. **Baseline Profile (BP)**: 最基本的Profile,适合低带宽应用,如互联网流媒体,提供基本的压缩但有较高的比特率,编码复杂度较低。 2. **Main Profile (MP)**: 常见于高清电视和蓝光光盘,比Baseline Profile有更多的编码选项和更好的性能,但仍然保持良好的兼容性。 3. **High Profile (HP)**: 提供了更高的数据压缩能力,适用于高清和部分标清内容,编码过程稍微复杂一些。 4. **High 422 Profile (H422P) and High 444 Profile (H444P)**: 特别针对逐行扫描(422)和逐像素(444)的高质量视频,提供无损的4:2:2或4:4:4像素采样,比特率较高。 5. **Constrained Baseline Profile (CBP)**: 一种限制版本的Baseline Profile,用于设备内存较小的场景,压缩率稍低但内存消耗较少。 6. **Advanced Video Coding (AVC) Intra Profile**: 只包括I帧(关键帧),适合需要快速回放的实时应用。 选择哪种Profile取决于你的应用场景需求、目标比特率、设备能力和文件大小。你可以通过FFmpeg的-c:v h264 -profile <profile_name>命令来指定H.264编码Profile。例如: ```sh ffmpeg -i input.mp4 -c:v libx264 -profile high -crf 23 -output output.mp4 ``` 在这里,`-profile high`指定了使用High Profile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值