您的位置:首页 > 其它

ffmpeg学习:ffmpeg下载,播放音频、视频,读取USB摄像头数据流并实时播放

2015-04-22 17:15 423 查看
1:解压缩包命令

从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包,要解压很简单 :

.tar.gz 格式解压为 tar -zxvf xx.tar.gz

.tar.bz2 格式解压为 tar -jxvf xx.tar.bz2

2: 编译ffmpeg时,出现了 ffmpeg yasm not found, use --disable-yasm for a crippled build,是因为 FFMPEG为了提高编译速度,使用了汇编指令,如果系统中没有yasm指令的话,就会出现上述的问题。

解决办法是:

A 如果是Windows系统, 从网上下载一个 yasm.exe 并安装在mingw/bin下面,重新编译,就不会出现该错误了;

B 如果是Linux系统,则更简单,直接在终端输入 sudo apt-get install yasm ,安装好后,重新编译就 OK了。

3:Linux ffmpeg的安装编译过程

(1)下载ffmpeg。

在网上搜索一下,或者到官方网站下载 

(2)解压

   tar -jxvf xx.tar.bz2 

(3)配置

   ./configure --enable-shared --prefix=/usr/local/ffmpeg

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

(4)编译并安装

   make

make之后有可能没有生成ffplay,此时编译时需要安装libsdl1.2-dev,命令为sudo apt-get install libsdl1.2-dev,如果安装失败,之前如果安装过sdl-devel包最好将其卸载。根据错误原因来解决。

然后重新make。

   sudo make install -j4 //-j4四核并行运行

(5)安装之后在/usr/local/ffmpeg会看到有三个目录

lib 动态链接库位置

  include 编程要用到头文件

  bin 执行文件所在的目录

(6)如果共享库文件安装到了/usr/local/ffmpeg/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中,

如下:

# cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

# echo "/usr/local/ffmpeg/lib" >> /etc/ld.so.conf

# ldconfig

另外,bin目录下还有两个文件:ffmpeg和ffserver

   ffmpeg是一个很好的视频和音频的格式转化工具。网上有很多它的说明文档。如果不想生成ffserver,只要在./configure的时候加--disable-ffserver即可。

(7)编程

如果写了一个test.c文件,要包含ffmpeg的头文件,可以这样写:

 #include

编译:gcc -o test test.c -lavformat -lavcodec -lavtuil (前提是有第6步的操作)

  如果没有第6部的操作,则编译的时候如下:

  gcc -o test test.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib
-lavformat -lavcodec -lavtuil

(8)安装好之后读取USB摄像头并实时播放

捕获存入文件后播放

捕获:ffmpeg -f video4linux2 -s 320*300 -i /dev/video0 test.asf

播放:ffplay test.asf

捕获后实时播放

ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0

以上的方式是采用动态库编译ffmpeg的,如果在configure的时候不加上--enable-shared的,则采用静态链接的方式,不会生成那三个动态库。同时生成的ffplay、ffmpeg的执行文件也比较的大,因为他们不需要动态库的支持,就可以执行。但是不利于再次开发,所以我采用动态链接的方式。configure中还有很多的选项,可以通过./configure
--help查看,也可以直接查看configure文件。这在配置的时候很重要。

参考地址:
http://blog.chinaunix.net/uid-26212859-id-3256667.html
blog.csdn.net/cherayliu/article/details/7496878
http://blog.csdn.net/cherayliu/article/details/7486378
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: