一、制作屏幕录像

一、在linux上编译ffmpeg

     下载文件到/home/wyq/,

     1、cd /home/wyq/ffmpeg 切换到当前目录;

     2、./configure --disable-yasm --enable-shared --prefix=/home/wyq/ffmpeg  生成config.h等文件,生成动态库;

         其中,--enable-shared 是允许其编译产生动态库,在以后的编程中要用到这个几个动态库。--prefix设置的安装目录。若要生成静态库,换为--enable -static。

     3、make 运行

     4、make install 安装,生成各种.a,.so,.h文件

     这时会在ffmpeg中生成lib、include、bin文件夹,lib文件夹中都是生成的.a,.so的库文件,include中是各种编译要用的.h文件,bin中是执行文件所在的目录。

     为了以后编译方便,将lib中的三个链接库libavcodec.so libavformat.so libavutil.so复制到/usr/lib下,把include目录下的ffmpeg目录复制到/usr/include下。

二、试运行

    在/home/wyq/下,新建一个simulation文件夹,和ffmpeg平级,下面再新建src, include, out, obj这四个目录,并把tutorial01.c和一个测试视频test.mp4放在src目录下。

    1、切换到src目录下,输入gcc -g -o tutorial01 tutorial01.c -lavutil -lavformat -lavcodec -lz -lavutil -lswscale -lpthread -lm -I../ffmpeg

            编译报错: /usr/bin/ld:can not find -lz  ;解决办法:输入sudo apt-get install zliblg-dev。但是当时我的第一反应是去掉-lz,编译后也成功了。

       至于-lpthread我不知道这个是干什么的,也去掉了。

            编译报错: can not find libavutil.so等等 ,这些都是由于没有将生成的库文件放入/usr/lib下,放入后即可。

        注意:/usr/lib需要系统权限,输入su即可。复制命令:cp  原文件的路径 要放入的目录;若要把一个文件夹的全部内容放入另一个文件中,在cp后加-r。

     2、输入./tutorial01 test.mp4,会输出一系列RGB图片,成功。

    

   

原文地址:https://www.cnblogs.com/wyqfighting/p/2752715.html