ffmpeg+x264+NeroAac在linux上实现经典的视频压制
来源:互联网 发布:淘宝客默认佣金是多少 编辑:程序博客网 时间:2024/06/05 14:29
ffmpeg+x264+NeroAac进行视频压制算是最经典的方法,这是我在ubuntu上实现的过程。
参考了各官方文档,网上网友的资料。
第一步,先把之前可能安装失败的卸载掉
sudo apt-get remove ffmpeg x264 libx264-dev yasm
第二步,安装必要的依赖
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev unzip
第三步,新建一个目录,并进入
mkdir codercd coder
第四步,安装yasm
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gztar xzvf yasm-1.3.0.tar.gzcd yasm-1.3.0./configuremakesudo make installmake distclean
第五步,安装x264
cd ..wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2tar xjvf last_x264.tar.bz2cd x264-snapshot*./configure --enable-static --enable-shared --enable-visualize --system-libx264 --enable-gprof --enable-strip --enable-pic --enable-debugmakesudo make installmake distclean
第六步,安装libfdk-aac
cd ..wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/masterunzip fdk-aac.zipcd mstorsjo-fdk-aac*autoreconf -fiv./configure --enable-sharedmakesudo make installmake distclean
第七步,安装libmp3lame(>3.98.3)
sudo apt-get install libmp3lame-dev
第八步,安装libopus(>1.1)
sudo apt-get install libopus-dev
第九步,安装libvpx
cd ..wget http://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2tar xjvf libvpx-v1.3.0.tar.bz2cd libvpx-v1.3.0./configuremakesudo make installmake clean
第十步,安装ffmpeg
cd ..wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2tar xjvf ffmpeg-snapshot.tar.bz2cd ffmpeg./configure --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grabmakesudo make installmake distclean
第十一步,编辑/etc/ld.so.conf文件加入如下内容
/usr/local/lib
保存退出后执行
sudo ldconfig
第十二步,安装nacc
sudo cp NeroAACCodec-1.5.1/linux/* /usr/binsudo chmod 777 neroAac*
第十三步,64位系统的
sudo apt-get install lib32stdc++6
第十四步,可选安装crc32校验
sudo apt-get install libarchive-zip-perl
第十五步,将下面内容保存为.sh脚本文件
=============================================#/bin/bashfunction compress {input="$1"namevl=`echo "$input"|sed -r 's/(.*)(\..*)/\1/g'`output=`echo $namevl`_encassfl=`echo $namevl`.asstimecodefile=`echo $namevl`_timecode.txtecho Now encoding `basename "$input"`x264_option='--preset medium'ffmpeg -i "$input" -f yuv4mpegpipe -vf "ass=$assfl" -pix_fmt yuv420p -an -v 0 - | x264 --tcfile-out "$timecodefile" $x264_option -o "$output.mp4" --demuxer y4m - &&ffmpeg -i "$input" -vn -f wav - | neroAacEnc -q 0.25 -lc -ignorelength -if - -of "$output.m4a" &&ffmpeg -y -i "$output.mp4" -i "$output.m4a" -vcodec copy -acodec copy "$output-mux.mp4" &&rm -f "$output.mp4" &&rm -f "$output.m4a" &&crcvl=`crc32 "$output-mux.mp4"` &&mv `basename "$output-mux.mp4"` "[AWS]`basename $namevl`[$crcvl].mp4"}if [ $# -lt 1 ]thenecho 用法:echo `basename $0` video1 [video2] [video3]...echoecho TIPS:echo 1.注意如果路径中有空格的话需要用引号,如`basename $0` \'/dir 1/1 1.avi\'或`basename $0` \"/dir 2/2 2.flv\"echo 2.“理论上”支持find命令的正则表达式echo 3.支持通配符,如`basename $0` \'/dir 1/*.avi\' `basename $0` \"/dir 2/v*\" 即可匹配/dir 1目录下所有的avi文件以及/dir 2目录下所有的以v开头的文件echo 4.图形化界面下可以在终端输入`basename $0`后,将文件从“资源管理器”中拖拽到终端上松开,选择“粘贴位置”,会自动将文件路径输入到终端,有空格会自动加引号echo 5.字幕文件请按相同的名称放在视频的同一目录(注意,ass文件最好包含字体等,服务器上字体一般没有你想要的)echo 5.本脚本由chobit借鉴晚上资源编写的,一切所引发的不良后果,请自负exitelseIFS_OLD=$IFSIFS=$'\n'for files in $@dofind `dirname $files` -name `basename $files` -type f |for line in `cat`doIFS=$IFS_OLDcompress "$line"IFS=$'\n'donedonefi=============================================
sud chmod -x x264com.sh./x264com.sh
0 0
- ffmpeg+x264+NeroAac在linux上实现经典的视频压制
- ffmpeg使用记录--解决了压制的视频在安卓不播放的问题
- Linux 音视频技术] 转:ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- Linux 音视频技术] 转:ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- ffmpeg在linux安装实现视频转换
- ffmpeg x264 linux
- 【转载】在Ubuntu 10.04 LTS上安装FFmpeg和x264
- arm mini2440 基于v4l2 ffmpeg x264的视频远程监控
- 基于v4l2 ffmpeg x264的视频远程监控
- arm mini2440 基于v4l2 ffmpeg x264的视频远程监控 .
- 2440 基于v4l2 ffmpeg x264的视频远程监控
- mini2440 基于v4l2 ffmpeg x264的视频远程监控
- arm mini2440 基于v4l2 ffmpeg x264的视频远程监控
- mini2440 基于v4l2 ffmpeg x264的视频远程监控
- arm mini2440 基于v4l2 ffmpeg x264的视频远程监控
- 使用ffmpeg将视频转为x264编码的mp4文件
- FFmpeg在Linux下的简单安装并与Java结合获取视频缩略图功能实现
- FFmpeg在Linux下的简单安装并与Java结合获取视频缩略图功能实现
- 怎样实现iMessage群发
- 运行最终形成的可执行的二进制文件
- poj1613Cave Raider(带限制的最短路+spfa)
- Cocos2d-x 多分辨率适配完全解析
- Android 获取用户安装的app信息
- ffmpeg+x264+NeroAac在linux上实现经典的视频压制
- iOS MD5字符串加密
- 理解ThreadPoolExecutor源码(二)execute函数的巧妙设计和阅读心得
- JS打印打印制定区域内容
- 【ThinkingInC++】33、构造函数和析构函数的各种特征
- 【程序员应该知道的】硬盘基本知识
- Binary Tree Postorder Traversal
- Zookeeper集群搭建
- 2014华为机试题---字符压缩