我正在尝试将 h264 编码的baseline4.0 avi 文件转换为使用baseline3 编码的新h264 mpeg 文件。
由于baseline4.0,文件原始文件无法在任何iOS设备上播放(我认为?)
我在这里使用这个包装类 https://github.com/OpenWatch/FFmpegWrapper
但实际上我不知道如何设置基线。我可以转换为 mpeg4,但似乎每次都默认为baseline4.0。
我尝试在 AVCodecContext 上设置它
AVCodecContext *outputCodecContext = outputStream->codec;
outputCodecContext->level = 31;
outputCodecContext->profile = FF_PROFILE_H264_BASELINE;
但这没有任何效果。
也许任何人都有线索,或者有更好的 FFMPEGWrapper。
来自原始视频的规范:
Best Answer-推荐答案 strong>
首先看一下this网站了解哪些苹果设备支持什么:
每个配置文件末尾的数字不是配置文件的版本!它是一个级别。这意味着如果您想支持所有设备,您应该坚持使用 Baseline 配置文件和 Level 3.0。
我不知道这个包装器的东西,但是使用简单的 ffmpeg 你会使用这个选项:
-profile:v baseline -level 3.0
编辑:
抱歉,我没有注意到您已经设置了级别(可能以正确的方式)。但这里还有一个提示。注意 FFmpegWrapper 的 init 中对 av_register_all() 和 avcodec_register_all() 的调用.会不会是先初始化wrapper再改AVCodecContext ?
关于ios - FFMPEG 将 .avi 转换为可播放的 iOS 电影 mp4,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/34675983/
|