您的位置:首页 > 运维架构 > Linux

win7下安装VM虚拟机,VM中安装Linux系统,Linux系统编译FFmpeg

2018-01-12 17:26 579 查看
Windows下安装VM和Linux,请见http://blog.csdn.net/shareus/article/details/78043212

Window下使用虚拟机Ubuntu编译Ffmpeg(编译的只有arm平台下的)- http://blog.csdn.net/u012808234/article/details/52066079
Linux 编译Android平台FFMPEG- http://blog.csdn.net/itheimach/article/details/53868575
使用NDK编译FFmpeg到Android下使用- https://www.jianshu.com/p/228f38e9aa9c
Linux执行.sh文件,提示No such file or directory的问题的解决方法- http://blog.csdn.net/huangjin0507/article/details/45044115
ffmpeg编译的android可用的so文件,多个版本- http://download.csdn.net/download/cdsun/9410696
ffmpeg编译android的so库- http://blog.csdn.net/u013654125/article/details/73527778
完成FFmepg的移植,编译ffmpeg4Android- http://blog.csdn.net/quan648997767/article/details/70172166
FFmpeg-3.3.1移植到Android平台- https://www.jianshu.com/p/b53369d6905f
------------

FFmpeg第一篇之Android平台上的so编译- http://blog.csdn.net/Yu_aishui/article/details/51121100
Window 平台 FFmpeg Android .so文件编译- http://blog.csdn.net/t1_one/article/details/51684343
FFmpeg4Android- https://github.com/mabeijianxi/FFmpeg4Android
Ubuntu14.04编译Android FFmpeg详细教程- http://blog.csdn.net/poison_h/article/details/51146754
> 源码FFmpeg 3.4.1 https://ffmpeg.org/download.html
libavutil      55. 78.100

libavcodec     57.107.100

libavformat    57. 83.100

libavdevice    57. 10.100

libavfilter     6.107.100

libavresample   3.  7.  0

libswscale      4.  8.100

libswresample   2.  9.100

libpostproc    54.  7.100

压缩tar zip文件:

tar czvf ffmpeg_3.4.1.tar ffmpeg

zip -r ffmpeg_3.4.1.zip ./ffmpeg

1.安装yasm

sudo apt-get install yasm

sudo apt-get install git

2.下载FFmpeg

git clone https://git.ffmpeg.org/ffmpeg.git
3.配置NDK环境

解压tar包:tar -xzvf  **.tar.gz

解压zip包:unzip *.zip

/home/desaco/Desktop/source_compile/envir_jdk_ndk_sdk/android-ndk-r13

/home/desaco/Desktop/source_compile/envir_jdk_ndk_sdk/android-sdk-linux

/home/desaco/Desktop/source_compile/envir_jdk_ndk_sdk/jdk1.8.0_144

vim ~/.bashrc(sudo gedit /.bashrc)

export NDK="/home/desaco/Desktop/source_compile/envir_jdk_ndk_sdk/android-ndk-r13"

export PATH=$NDK:$PATH

source ~/.bashrc

4.新建build_shell.sh文件,并写入脚本内容

touch build_shell.sh

sudo gedit /build_shell.sh(将脚本写入build_shell.sh文件中,直接打开时没有内容的)

重新打开需要命令sudo gedit /build_shell.sh,才能看到文件里有内容

#!/bin/bash

make clean

export NDK=/home/desaco/Desktop/source_compile/envir_jdk_ndk_sdk/android-ndk-r13

export SYSROOT=$NDK/platforms/android-9/arch-arm/

export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

export CPU=arm

export PREFIX=$(pwd)/android/$CPU

export ADDI_CFLAGS="-marm"

./configure --target-os=linux \

--prefix=$PREFIX --arch=arm \

--disable-doc \

--enable-shared \

--disable-static \

--disable-yasm \

--disable-symver \

--enable-gpl \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffprobe \

--disable-ffserver \

--disable-doc \

--disable-symver \

--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \

--enable-cross-compile \

--sysroot=$SYSROOT \

--extra-cflags="-Os -fpic $ADDI_CFLAGS" \

--extra-ldflags="$ADDI_LDFLAGS" \

$ADDITIONAL_CONFIGURE_FLAG

make clean

make

make install

5.修改FFmpeg执行权限和ndk执行权限

shell脚本执行,会关联许多文件,需要文件有可以执行的权限: 

chmod 777 -R ffmpeg;

chmod 777 -R ndk

6.修改配置文件,FFmpeg根目录下的configure文件 sudo gedit /configure

#SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'

#LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'

#SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'

#SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'

将以上几行注释,修改成下面几行->

#jmodified

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'

LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'

SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'

SLIB_INSTALL_LINKS='$(SLIBNAME)'

7.执行shell脚本

chmod 777 build_shell.sh
./build_shell.sh

----------------

Linux编译还是不行,改了格式还是不行?

ffmpeg build_ff_android.sh编译出现No such file or directory错误:原因:在windows中写好shell脚本测试正常,但是上传到 Linux 上以脚本方式运行命令时提示No such file or directory错误,那么一般是文件格式是dos格式的缘故,改成unix 格式即可。

【解决办法一】:

重新设置下文件格式(在命令模式下):sudo vim build_ff_android.sh

:set ff=unix  

保存退出:

:wq  

 再执行,就可以了。

【解决方法二】

如果linux系统已安装了dos2unix服务,可以直接执行:

dos2unix {filename}

apt install dos2nuix

dos2unix build_ff_android.sh

这样就将dos格式的文件转换为linux平台下的文件。

sudo apt-get install tofrodos

实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)。

dos2unix build_ff_android.sh

sudo chmod +x build_ff_android.sh

./build_ff_android.sh

----------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: