当前位置:首页 » 编程软件 » ubuntuffmpeg编译

ubuntuffmpeg编译

发布时间: 2024-07-28 01:55:03

Ⅰ Ubuntu 9.10下安装和使用ffmpeg的详细过程!

ffmpeg的编译、安装及使用(for x86,for arm)
http://hi..com/iminway/blog/item/bda2db4e29ced701b2de05f1.html

最新的ffmpeg可以通过svn下载,SVN辅助的软件有:
SubVersion,从 http://subversion.tigris.org/ 下载,支持linux
TortoiseSVN,从 http://tortoisesvn.tigris.org/ 下载,是很不错的SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端,用起来很方便。

http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz
tar zvxf subversion-1.3.2.tar.gz
cd subversion-1.3.2
./configure --with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd/
make
make install
如果安装了FC6,它已经带了svn,不用装了。
ffmpeg的下载:我们就可以通过svn命令获取最新的ffmpeg,命令如下:
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

xvid的获取地址如下:
http://www.xvid.org/
wget http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz
配置编译
for x86
#./configure --prefix=/usr/local
#make
#make install
for arm
#CC=arm-linux-gcc ./configure --prefix=/usr/local/arm/arm-linux --build=i686-pc-linux --host=arm-linux --target=arm-linux
#make
#make install

x264的获取地址如下:
svn co svn://svn.videolan.org/x264/trunk x264
配置编译
for x86
#./configure --enable-shared --prefix=/usr/local
#make
#make install
for arm
#CC=arm-linux-gcc ./configure --enable-pthread --enable-shared --host=arm-linux

#make install

lame的获取地址如下: http://lame.sourceforge.net/index.php
配置编译
for x86
./configure --enable-shared --prefix=/usr/local

libdts编译参数
./configure --prefix=/usr
make
make install

http://www.audiocoding.com/moles/mydownloads/,http://prdownloads.sourceforge.net/faac
FAAD2的编译
cd faad2
autoreconf -vif
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install
faac的编译
cd faac
chmod +x bootstrap
./bootstrap
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install
在编译ffmpeg,在configure时加上--enable-amr_nb --enable-faad --enable-faac参数。

编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一些编译3gp所需得文件。
源码网址:http://www.3gpp.org/ftp/Specs
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
解压以后把里面的文件都拷贝到libavcodec/amrwb_float
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr_float

微软ASF格式的三个版本,WMV1,WMV2,WMV3分别对应MediaPlayer的版本7,8和9,所以很多时候会称VC1为WMV3或 WMV9,都是它了,有时候在代码里,也能看到称呼它为VC9的。因为微软还没有正式公开这种格式,所以当前对VC1的支持还很不完善。本文基本是根据 Multimedia Mike的一篇博客翻译和完善而来。
(1) 首先要下载 SMPTE VC-1 reference decoder,这个组织是要收费的,可以从这里下载免费的。
(2) 在ffmpeg目录下的libavcodec目录下面,建立目录libvc1。
(3) 将VC1_reference_decoder_release6/decoder/目录中的*.c和*.h文件全部到libvc1目录下。
(4) 将VC1_reference_decoder_release6/shared/目录中的*.c和*.h文件全部到libvc1目录下。
(5) 将 libvc1-makefile.txt放到libvc1下的Makefile文件。
(6) 将smpte-vc1.c文件放到libavcodec目录下。
(7) 修改libavcodec目录下的vc9.c,将文件最后的wmv3_decoder这个AVCodec的structure,用#if 0和#endif包含起来,也就是使它失效了。
(8) 修改libavcodec目录下的allcodecs.c,将register_avcodec(&wmv3_decoder)上下的注释去掉,使它发挥作用。
(9) 修改libavcodec目录下的Makefile,把OBJS的列表中加入smpte-vc1.o。
(10)修改ffmpeg主目录下的Makefile文件,把-L./libavcodec/libvc1 -lvc1$(BUILDSUF)加入到FFLIBS后面。
(11) 进入ffmpeg/libavcodec/libav1,执行make
(12) 到ffmpeg主目录下,执行config;make;make install。config时根据实际情况带参数。

采用ffmpeg转码制作FLV文件,和转码成其它媒体类型的重要差别是一定要有lame库支持,因为FLV的声音编码采用mp3格式,非lame这个东 东不行。编译ffmpeg中加入lame库真是一场灾难,特别在windows下,很多参数都不能发挥作用,最后直接手工和改一些文件,记录如 下:
(1) 如果在Windows下编译,第一步当然是下载MinGW和MSYS来装上了。到http://mingw.sourceforge.net/去下载最新版的MinGW-5.0.2.exe和MSYS-1.0.11-2004.04.30-1.exe。
(2) 先安装MinGW,直接运行MinGW-5.0.2.exe安装,选择目录,譬如选择D:\MinGW为安装目录。安装时需要选择gcc和make模块,安装文件本身很小,会从网上下载模块来安装。
(3) 然后安装MSYS,也是直接运行MSYS-1.0.11-2004.04.30-1.exe安装。安装目录一般选择D:\MinGW\bin \1.0。,安装过程会询问刚才安装MinGW的目录,输入D:\MinGW,其它都回答'Y'就搞定了。如果不清楚,可以看这个图片效果。
(4) 运行MSYS,桌面上有个图标,双击就运行了,运行结果是一个模拟unix的命令窗口,后面的编译都在这种状态下进行。前面4步在linux不需要。
(5) 到http://lame.sourceforge.net/去下载最新版的lame-3.97b2.tar.gz,到你认为合适的地方,解压后进入lame解压出来的目录中。执行
./configure --prefix=PREFIX
make
make install
(6) 就把编译出来的include下的lame目录到/usr/include目录下,把lib下的几个库文件都到/usr/lib目录 下。这里注意有个变化,如果只 lib目录下的静态库到/usr/lib下,就是只 libmp3lame.a文件,编译出来的ffmpeg最终就不会对libmp3lame的动态库有依赖关系,这是因为编译首先找动态库,动态库没有才找 静态库。如果不做这个,后面编译ffmpeg时无论如何指定参数,都会报错LAME not found,不知道是哪里的bug。
(7) 从http://ffmpeg.mplayerhq.hu/取得最新的ffmpeg,现在自由软件都大量采用SVN了,要先装一个SVN,可以去http://tortoisesvn.tigris.org/下载windows版的SVN,去http://subversion.tigris.org/下载linux版的SVN。SVN如何编译安装这里就省略了。
(8) 如果在windows下,打开解压后的ffmpeg目录下的Makefile文件,在FFLIBS的那一行后面加上-lmp3lame$(BUILDSUF)。这个也不知道是哪个bug引起的,搞了好长时间才搞出来,郁闷。Linux下不用这样。

#./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb --enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-faadbin --enable-dts --enable-pp --enable-faad --enable-faac --enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay
make
make install

http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr目录下

make
make install

#./configure --prefix=./install --disable-shared --enable-pthreads --enable-libx264 --enable-libxvid --arch=i686 --enable-gpl
#make
#make install

配置编译
#./configure --prefix=/home/zht/redhatzht/sources/image-colletct/ffmpeg/install --enable-static --disable-shared --enable-libx264 --enable-libxvid --cross-compile --cc=arm-linux-gcc --arch=arm --enable-gpl --disable-strip --disable-network --disable-ipv6 --disable-vhook --disable-audio-beos --disable-audio-oss --disable-mpegaudio-hp --enable-pthreads --enable-small --disable-parsers --disable-debug
#make
#make install

x86上的ldconfig不能在arm上运行,arm上的ldconfig工具是在建立交叉编译器时,编译glibc是产生的,可以拷贝到arm-linux中。
(4) 本文大部分内容来自网络,其中xvid,x264的库,我亲手安装过,ffmpeg的配置编译for x86的简易配置,for arm,我亲手配置编译过,并在x86,arm上可用,编译配置都是采用静态库。

ffmpeg作为媒体文件处理软件,基本用法如下:
ffmpeg -i INPUTfile [OPTI

文章出处:DIY部落(http://www.diybl.com/course/6_system/linux/Linuxjs/20091024/180077.html)

Ⅱ FFmpeg之Linux下编译与调试

下面的一切都是在 root 模式下进行的,可以不再 root 模式下进行

基础环境就是编译代码的基础库,Ubuntu联网安装软件很简单,一个语句即可搞定,这里列出语句如下:

依赖库分两方面,参考以下网站列出的依赖库信息,本文选择的版本均参考于此网页: FFmpeg依赖库信息

首先创建 FFmpeg 代码目录,所有的源代码放在这个目录下

FFmpeg 编译之后,即可使用。编译生成的可执行程序在 ~/bin 目录下

注:上面的 ./configure 配置编译后并不能进行调试,需要如下配置.

刚才的工程可以运行,但不能debug。解决此问题,首先认定一点,生成的可执行程序中,ffmpeg 不包含调试信息,调试信息在 ffmpeg_g 中,debug 要选择 ffmpeg_g。

另外,./config选项也是确定包含调试信息的核心,需要在config中添加:

采用以下命令重新config:

一些注意事项; 在使用 ffplay 播放生成 h264 格式的视频时,播放速度会加快,解决方式:不要使用 FFmpeg 转码生成纯 h264 格式的视频,要使用一种容器包含 h264 视频,即生成一种音视频流格式,也就是不要生成纯粹的 h264 码流,而是生成诸如 mkv 等格式的文件。

Ⅲ 关于opencv在arm上的移植问题

ubuntu intrepid + arm-linux-gcc(2.95.3)

所使用的交叉编译器,似乎与编译器对 stl 的支持程序有关。
目前可知的是,openmoko 提供的编译器编译1.0.0及1.1.0均有问题。

1、编译opencv-1.0.0
$ cd opencv-1.0.0
$ mkdir build; cd build //这样处理是比较干净,也方便。

2.95.3对opencv-1.0.0正常,暂未发现问题。编译opencv-1.1.0则存在问题。
另,ELDK-4.2已经安装好,其支持都很是完整。另行测试。

1)配置(共享库及静态链接)
//共享库
$ ../configure --host=arm-linux --prefix=/home/goosen/visions/install --without-gtk --without-v4l --disable-apps

//静态编译
$ ../configure --host=arm-linux --prefix=/home/goosen/visions/install --without-gtk --without-v4l --disable-apps --enable-static --disable-shared

此处若配置target=arm-linux,并没有检测交叉编译器。因此选择配置--host=arm-linux-gcc 。
静态编译opencv成功,只是编译应用程序则出现大量的’undefined reference‘。
对于ffmpeg, v4l及gtk的支持。需要整理文档(基本步骤,碰到的问题及初步分析)。

2)编译(安装于~/visions/install/)
$ make; make install
$ ls ~/visions/install/ //opencv 安装于 --prefix所配置目录下
include lib share

2、设置环境变量及编译sample(c 源码)
1)编译例程
//opencv共享库,均正常。
//暂时无法实际测试,所使用的9200板子,未有LCD,另gtk未支持。
$ sh build_all.sh
$ file drawing
drawing: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped

//编译 drawing.c(静态链接opencv)
$ arm-linux-g++ drawing.c -o drawing `pkg-config --cflags --libs opencv`
/home/goosen/visions/install/lib/libcxcore.a(cxerror.o):???'__static_initialization_and_destruction_0'?:
cxerror.o(.text+0x518): undefined reference to `pthread_key_create'
collect2: ld returned 1 exit status

修改/home/goosen/visions/install/lib/pkgconfig 下opencv.pc, 加编译参数 -lpthread

2)设置及修改。设置 PKG_CONFIG_PATH
$ export PKG_CONFIG_PATH=/home/goosen/visions/install/lib/pkgconfig
$ cd opencv-1.0.0/samples/c

修改build_all.sh
gcc -> arm-linux-gcc
g++ -> arm-linux-g++

//eldk的很好很强大,寻找时间进行进一步测试。

另,需要对ppp协议中的LCP协商部分,做更为深入的了解。

Ⅳ ubuntu涓璮fmpeg2.69娌℃湁ffplay镐庝箞瀹夎

鐜澧冿细ubuntu10.04
闂棰1:缂栬疟涓岖敓鎴恌fplay
ffplay渚濊禆sdl锛屽畨瑁呬箣鍓嶈佸厛瀹夎匰DL銆
涓嬭浇鍦板潃锛http://www.libsdl.org/download-1.2.php

闂棰2锛歠fplay涓嶅彲鐢锛屼笉鑳芥挱鏀捐嗛戙
钬沦DL锛 銆伞伞伞伞伞傗
x86涓嬮渶瑕佸畨瑁厁11镄勫簱鏂囦欢锛屾墠鑳藉姞杞借嗛戣惧囥
涓嬭浇瀹夎
sudo apt-get install libx11-dev
sudo apt-get install xorg-dev

Ⅳ ffmpeg 64位编译脚本

NDK版本:android-ndk-r14b

ffmpeg版本:4.2.4 / 4.4

Ubuntu版本:15.5

#!/bin/bash

  NDK=/home/linrendi/Desktop/Compile/android-ndk-r14b

  PLATFORM=$NDK/platforms/android-21/arch-arm64

  TOOLCHAIN=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64

  PREFIX=/home/linrendi/Desktop/ffmpeg64

  CPU=armv8-a

  function build_one

  {

      ./configure \

  --prefix=$PREFIX \

  --target-os=android \

  --disable-doc \

  --cross-prefix=$TOOLCHAIN/bin/aarch64-linux-android- \

  --arch=arm64 \

  --cpu=$CPU \

  --disable-asm \

  --sysroot=$PLATFORM \

  --extra-cflags="-I$PLATFORM/usr/include" \

  --cc=$TOOLCHAIN/bin/aarch64-linux-android-gcc \

  --nm=$TOOLCHAIN/bin/aarch64-linux-android-nm \

  --disable-shared --enable-static \

  --enable-small --disable-debug \

  --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-symver \

  --enable-neon  --enable-pthreads \

  --disable-devices --disable-encoders \

  --enable-hwaccels --enable-jni --enable-mediacodec \

  --enable-encoder=aac \

  --enable-decoder=h264_mediacodec \

  --enable-hwaccel=h264_mediacodec \

  --enable-encoder=mjpeg \

  --enable-encoder=ljpeg --enable-encoder=jpeg2000 --enable-encoder=jpegls \

  --enable-muxer=mp4 --enable-muxer=mjpeg \

  --enable-runtime-cpudetect \

    make clean

    make -j4

    make install

    $TOOLCHAIN/bin/aarch64-linux-android-ld \

    -rpath-link=$PLATFORM/usr/lib \

    -L$PLATFORM/usr/lib \

    -L$PREFIX/lib \

    -soname libffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o \

    $PREFIX/libffmpeg.so \

    libavcodec/libavcodec.a \

    libavfilter/libavfilter.a \

    libswresample/libswresample.a \

    libavformat/libavformat.a \

    libavutil/libavutil.a \

    libswscale/libswscale.a \

    libavdevice/libavdevice.a \

    -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker \

    $TOOLCHAIN/lib/gcc/aarch64-linux-android/4.9.x/libgcc.a

  }

  build_one

Ⅵ linux下编译ffmpeg时关于configure的问题.

你准备工作没做好吧!!

  1. 先编译安装Yasm。

  2. 然后编译安装H.264 (也就是x264)。

  3. 再编译安装AAC audio encoder (fdk-aac)。

  4. 编译安装libmp3lame (MP3 audio encoder)。

  5. 编译安装libopus (Opus audio decoder and encoder)。

  6. 编译安装libvpx (VP8/VP9 video encoder and decoder)。

  7. 做后编译安装ffmpeg。

    其中1-6你可以选择编译安装,也可以使用源直接安装。安装后了再编译安装ffmpeg

    你使用 sudo ldconfig -p |grep libx264 看看你的libx264是否正确安装.

    你编译安装x264的时候可以使用2中方式都安装。

cd ../x264

./configure --enable-shared
make
make install

最后

cd ../x264
make distclean
./configure --enable-static
make
make install

Ⅶ OpenCV静态库编译与链接

以OpenCV-4.0.0为例说明在Ubuntu环境下的静态库编译与链接方法:

opencv依赖第三方的库,所以当把opencv编译成静态库的时候,注意要把它运行时必要的依赖库也编译进来,opencv源码内有自己的3rdparty,主要有:libjpeg、libpng、libtiff、libzlib、libwebp、libprotobuf、ffmpeg(用到video时编译)、libgtk(用于显示界面显示,服务器部署不会用到),可以通过cmake -LA来查看配置的编译信息,再根据信息考虑把opencv的哪些mole编译进来。

链接时指定opencv的静态库以及依赖的库。另外需要注意头文件的问题,通过CMakeLists把opencv加入项目编译时,由于opencv编译完成后要install才会把所用的头文件集中拷贝到一个地方,所以事先将头文件拷贝到了项目的opencv目录下。

热点内容
newman算法 发布:2024-11-25 21:34:55 浏览:200
a算法概念 发布:2024-11-25 21:24:16 浏览:587
jquery源码书籍 发布:2024-11-25 21:19:50 浏览:803
银行卡输入密码超限怎么办 发布:2024-11-25 21:09:07 浏览:958
编译指令多发 发布:2024-11-25 20:58:17 浏览:751
java上传文件到服务器 发布:2024-11-25 20:52:47 浏览:741
轴加工编程 发布:2024-11-25 20:52:12 浏览:412
手机的媒体存储 发布:2024-11-25 20:29:42 浏览:265
安卓如何关闭手机桌面 发布:2024-11-25 20:24:37 浏览:701
脚本也违法吗 发布:2024-11-25 20:24:24 浏览:305