出于工作需求,需要将视频文件编码为H264。 在此记录一下。
一、数据准备
1. 需要下载MinGW https://sourceforge.net/projects/mingw/
2. 需要下载 yasm http://yasm.tortall.net/Download.html
看个人需要,我下载的是win32.exe版本的。
3. 需要下载 UltraEdit, 用于编辑 .bat 文件
4. 需要下载 pexports.exe https://sourceforge.net/projects/mingw/files/MinGW/Extension/pexports/
我找的是下载次数最多的那个。 用于将 .dll.a 生成 .lib
二、安装过程
一键setup
新修改路径,结果有warning, 然后就默认到了C盘。其实也可以放在其他盘,没有问题的。
路径修改时,会有warning,所以我就没有修改,其实也可以修改,看自己喜好,能找到就行。
选择Basic Setup,在每一个方框上,右键,有一个选项,勾选即可,完成后如下图:
左上角,Installation -> Apply Changes
边下载边安装,整个过程需要等较长时间(网速好的除外)。
我这里网不太好,有好多文件没有下载成功。当然啦,并不影响。
两天之后,我继续setup,已经安装的还有,没有安装成功的,还会继续下载,直到安装完为止
三、编译x264
1. 把 下载的 yasm.exe pexports.exe 放到c:\\MinGE\bin 文件夹下。(这是我的路径),如果下载下来的执行文件名称不是yasm.exe,修改成yasm.exe即可。
2、 使用UltraEdit 打开 C:\MinGW\msys\1.0 中 msys.bat
在第一行的上面,添加一条代码, 代码路径为我安装的VS2010的bin路径:
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvar32.bat"
@echo off
rem Copyright (C): 2001, 2002, 2003, 2004, 2005 Earnie Boyd
rem mailto:earnie@users.sf.net
3、 双击打开 C:\MinGW\msys\1.0 中 msys.bat 执行文件,
使用Linux的输入命令,进入要编辑的X264的源文件中(红框内容为我的路径)。
输入: . /configure –enable-shared –disable-asm –prefix=/usr/local/x264
原因:没有asm, 所以忽略掉
蓝色为路径,在当前的C:\MinGW\msys\1.0\local 的路径下,添加一个x264文件。
输入: make
此处时间较长,编译文件较多,需要耐心等待。
输入:make install
运行完make install之后,出现如下:
通过以下命令,导入x264的环境变量。
export PATH=”$PATH:/usr/local/x264/bin"
export C_INCLUDE_PATH="$C_INCLUDE_PATH:/usr/local/x264/include"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/x264/lib”
发现一个问题,按道理来说,应该有 .lib文件,但是lib文件夹中,只有如下两个文件:
此链接 https://www.cnblogs.com/lihaiping/p/builtx264-2.html 说了如下一句话:
然后,我就这样改了,如下:。
不是我偷懒,是我尝试了各种办法,也没有生成.lib文件。至于是否可行,建一个工程先测试一下,
参考链接:https://blog.csdn.net/huibailingyu/article/details/40835825 此链接尝试结果 failed:
(如果你有好的办法,可以给我留言)
之后的解决方案:https://blog.csdn.net/qq_34732729/article/details/87785734
四、测试工程
1、打开VS2010,新建一个win32控制台应用层序。
将
bin 文件夹中的 libx264-157.dll
include 文件夹中的 x264.h x264_config.h
lib 文件夹中的 libx264.lib
复制到新建的工程下。
另外需要找到:stdin.h pthreadGC2.dll 也放到工程下。如图所示:
/
2、填写代码,编译通过!