release版调用ffmpeg出错
2015-11-26 13:13
274 查看
这几天在做一个原始ES流复用为MP4的库,调用的是ffmpeg,弄了半天把各种参数设好之后,F5一切正常,ok了,可让人郁闷的是,把库编译成release版本后,不是报未处理异常,就是报无法定位程序入口点……,刚开始以为是release版本的编译选项没设置好,找了半天也没有找到,最后在网上一通搜索,找到下面这篇文章:
http://blog.csdn.net/bing87496988/article/details/25061659
内容如下:
win7 下开发视频服务器,用到ffmpeg,debug版本运行正常,切换到release时,出现"0x00905a4d
处未处理的异常: 0xC0000005: 读取位置 0x00905a4d 时发生访问冲突",原以为是jrtplib得问题,鼓捣半天才发现是ffmpeg. 用一个很小的测试程序验证,在av_register_all处就崩溃.鸟!
难道是用mingw生成ffmpeg时有调试信息,应用程序用release编译冲突?
ffmpeg版本老旧,有这个bug?
我编译的选项不对?
测试排除了上面3个疑问. 那就只有debug和release版本的区别了. 将release的优化选项逐个的剔除测试,找到了问题所在:
连接器->优化->引用
在release版本下面使用"保留未引用数据(/OPT:NOREF)"选项才可以正常运行.
google "ffmpeg OPT:NOREF" 发现有人已经发现并解决了这个问题.
http://blog.csdn.net/bing87496988/article/details/25061659
内容如下:
win7 下开发视频服务器,用到ffmpeg,debug版本运行正常,切换到release时,出现"0x00905a4d
处未处理的异常: 0xC0000005: 读取位置 0x00905a4d 时发生访问冲突",原以为是jrtplib得问题,鼓捣半天才发现是ffmpeg. 用一个很小的测试程序验证,在av_register_all处就崩溃.鸟!
难道是用mingw生成ffmpeg时有调试信息,应用程序用release编译冲突?
ffmpeg版本老旧,有这个bug?
我编译的选项不对?
测试排除了上面3个疑问. 那就只有debug和release版本的区别了. 将release的优化选项逐个的剔除测试,找到了问题所在:
连接器->优化->引用
在release版本下面使用"保留未引用数据(/OPT:NOREF)"选项才可以正常运行.
google "ffmpeg OPT:NOREF" 发现有人已经发现并解决了这个问题.
相关文章推荐
- Managed Media Aggregation using Rtsp and Rtp
- 利用Ffmpeg获得flv视频缩略图和视频时间的代码
- codeigniter教程之上传视频并使用ffmpeg转flv示例
- PHP使用ffmpeg给视频增加字幕显示的方法
- PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
- 快速解决Android平台移植ffmpeg的一些问题
- java调用ffmpeg实现视频转换的方法
- python+ffmpeg视频并发直播压力测试
- [总结]FFMPEG视音频编解码零基础学习方法
- CentOs 下安装 ffmpeg 以及添加 ogg 音频支持
- FFmpeg音视频编解码实践总结
- ffmpeg 视频压缩 转换
- linux ffmpeg编译配置安装详解
- 解密FFmpeg播放track mode控制
- [学习与生活]视频开发网
- FFMPEG SDK 开发介绍
- 欠揍的ffmpeg,调试android里的ffmpeg (1)
- Android NDK r8b 和 FFmpeg 0.11.2 移植
- HelloWorld App of ffmpeg JNI
- XCode5下编译iOS7的lua,openssl,curl,libuv,ffmpeg库