ffmpeg 重写tutorial01程序--将一个视频文件解码输出bmp和jpg文件

本文档详细介绍了如何在Windows环境下,通过调用ffmpeg库,修改一个教程程序来解码视频文件,并将解码后的帧保存为BMP和JPEG格式的图片。首先,通过运行vcvars32.bat设置Visual Studio编译环境,然后切换到jpegsrc.v6bjpeg-6b目录,执行nmake命令以编译相关组件。
摘要由CSDN通过智能技术生成
参考链接1:Compile LibJPEG
参考链接2:利用ffmpeg0.5 和libjpeg实现抽取视频帧并将其保存为jpeg文件格式程序
参考链接3:ffmpeg 重写tutorial01程序--将一个视频文件解码输出ppm文件或bmp文件

之前写过一个将视频文件解码输出bitmap文件(见参考链接3),由于项目需要,需要输出jpg文件,由于jpg格式是有损压缩的,比bmp格式要复杂许多,简单google下,libjpeg开源库正合我意,使用起来简单清晰,网上很多朋友提供了很好的例子,我在windows7下编译花费了较多的时间。

操作系统: windows 7 旗舰版
开发环境:vs2008
相关库:ffmpeg,libjpeg

vs工程文件

1. 编译libjpeg
以前编译ffmpeg受过伤,想偷个懒,想想这么通用的库,网上提供的的.lib应该很多的,google "libjpeg for windows",第一条就提供了相应的库,大喜,用之,而事实上,正是因为自己的拿来主义,导致我后面遇到了各种莫名奇妙的问题,在执行jpeg_wirte_scanlines()和jpeg_finish_compress()时出现"写入位置发生访问冲突",由于是编译好的lib库,无法单步调试到相关函数里面检查错误,这个问题让人很绝望。


网上google时,无意找到了Compile LibJPEG看看,似乎编译过程也并不复杂,报着最后一丝希望,决定自己编译下libjpeg。该文已经将编译过程写得很详细了,我在windows7下编译也没有任何问题。下面我做一个简单的翻译。
1.1 从 http://www.ijg.org/files/上下载jpegsrc.v6b.tar.gz。
1.2 解压,假设我们放在C:\temp\jpegsrc.v6b下。
1.3 重命名c:\jpegsrc.v6b\jpeg-6b\makefile.vc 为 c:\jpegsrc.v6b\jpeg-6b\Makefile。
1.4 重命名c:\jpegsrc.v6b\jpeg-6b\jconfig.vc 为 c:\jpegsrc.v6b\jpeg-6b\jconfig.h。
1.5 打开cmd(快捷键:win+r)
1.6 在cmd中运行如下命令。vsvars32.bat的位置可能会不同,结合自己情况修改。注意:""不能少
  • "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
  • cd C:\temp\jpegsrc.v6b\jpeg-6b
  • nmake -f Makefile
1.7 编译成功后,在C:\temp\jpegsrc.v6b\jpeg-6b下会生成一个libjpeg.lib文件
1.8 对C:\temp\jpegsrc.v6b\jpeg-6b\jmorecfg.h进行修改:
 
 
/* INT32 must hold at least signed 32-bit values. */
#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */
typedef long INT32;
#endif
and make it look like this:
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值