linux系统部署ffmpeg视频转码环境及使用方法

news/2024/7/10 20:09:02 标签: ffmpeg, 操作系统, 运维

环境:CentOS 6.2 64位 CentOS 5.8 64位

部署过程

建立yum源文件

cat << EOF > /etc/yum.repos.d/ffmpeg.repo

[dag]

name=Dag RPM Repository for Red Hat Enterprise Linux

baseurl=http://apt.sw.be/redhat/el\$releasever/en/\$basearch/dag

gpgcheck=0

enabled=1

EOF

安装ffmpeg及开发包

yum install gcc gmake make libcpp libgcc libstdc++ gcc4 gcc4-c++ gcc4-gfortran subversion ruby ncurses-devel ffmpeg ffmpeg-devel mencoder -y

 

验证安装
输入命令ffmpeg (出现以下提示则安装正常)

FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers

  built on Dec  4 2010 09:30:59 with gcc 4.4.4 20100726 (Red Hat 4.4.4-13)

  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab

  libavutil     50.15. 1 / 50.15. 1

  libavcodec    52.72. 2 / 52.72. 2

  libavformat   52.64. 2 / 52.64. 2

  libavdevice   52. 2. 0 / 52. 2. 0

  libavfilter    1.19. 0 /  1.19. 0

  libswscale     0.11. 0 /  0.11. 0

  libpostproc   51. 2. 0 / 51. 2. 0

Hyper fast Audio and Video encoder

usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

 

Use -h to get full help or, even better, run 'man ffmpeg'

###############################################################################

添加水印功能:

下载:

svn co svn://svn.ffmpeg.org/ffmpeg/trunk /usr/local/src/ffmpeg

svn co svn://svn.ffmpeg.org/soc/libavfilter /usr/local/src/libavfilter

或者在相关软件包中找到这两个软件包,是从svn下载好后,打包下来的

然后:

cp /usr/local/src/libavfilter/vsrc_movie.c /usr/local/src/ffmpeg/libavfilter/

修改这个文件,并添加以下二行内容:

vim /usr/local/src/ffmpeg/libavfilter/allfilters.c

    REGISTER_FILTER (OVERLAY,     overlay,     vf);

    REGISTER_FILTER (MOVIE,       movie,       vsrc);

修改这个文件,并添加以下二行:

vim /usr/local/src/ffmpeg/libavfilter/Makefile

OBJS-$(CONFIG_OVERLAY_FILTER)                += vf_overlay.o

OBJS-$(CONFIG_MOVIE_FILTER)                  += vsrc_movie.o

加入二个软件:

yum install xvidcore xvidcore-devel yasm -y

进入ffmpeg目录,重新编译安装:

cd /usr/local/src/ffmpeg

./configure --prefix=/usr --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libmp3lame --enable-libx264 --disable-ffplay --enable-shared --enable-libmp3lame --enable-gpl --enable-pthreads --enable-libfaac --enable-postproc --enable-x11grab --enable-libgsm --enable-libx264 --enable-swscale --enable-nonfree --enable-avfilter --disable-yasm

make

make test

make tools/qt-faststart

cp -a tools/qt-faststart /usr/bin/

打开ld.so.conf文件,添加一行:

vim /etc/ld.so.conf

/usr/bin/qt-faststart

执行:

ldconfig

部署完成

 

以下是使用方法和以前遇到的问题及解决方法

转码方法:(加水印)

ffmpeg -i "/AA/1.mov"  -vf "movie=0:png:umelook.png [wm];[in][wm] overlay=20:20:1 [out]" -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow –s 512x288 –r 25 -crf 22 -threads 0 222.mp4

提取影版时间方法:

ffmpeg -i "/root/test.wmv" 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//

ffmpeg -i "7369.rmvb" 2>&1 | grep 'Duration' |awk -F '[ .]+' '{print $3}'

影片截图方法:

/usr/bin/ffmpeg -ss 00:00:23 -t 00:00:01 -i 1920x1080.mp4 -s 120x90 -r 1 -f mjpeg 20000.jpg

 

注:

/root/test.wmv 是待转码的电影源文件

logo.png是水印图片,需要指定路径,否则找不到该图片

overlay=5:5:1是水印在影片中的位置,从左上角算起,像素,1是透明度

222.mp4是转成后的mp4电影

-s 512x288:指定分辨率

-r 25:指定帧速率

-ab 128K:指定音频码率

-ac 2:指定双音道

 

用yum安装的各种参数

--prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab --disable-yasm --enable-libopencore-amrwb --enable-libopencore-amrnb

 

ffmpeg转码成mp4后,把mate data移到了视频尾部,因此网上看这视频的时候,需要在线下载完成后才能播放,但我们可以用qt-faststart功能,把mata data移到头部。

 

修复MP4文件mata dtat信息头,从尾部移到头部的相关信息:

 

信息一:

To install the qt-faststart with ffmpeg refer to the following steps but make sure that you have logged in as a root user.

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

If you receive the following “Connection timed out” error message then pelase disable the firewall for installation.

Time out error

Now follow the steps one one by one

 

cd ffmpeg

./configure

make

make test

make tools/qt-faststart

cp -a tools/qt-faststart /usr/bin/

Now check the qt-faststart path

root@linux7802 [~/ffmpeg]# which qt-faststart

/usr/bin/qt-faststart

执行方式:qt-faststart 源文件名  目标文件名

安装好后,默认会执行失败,如提示以下信息:

last atom in file was not a moov atom

请接着看信息二

 

信息二:

I found the problem. When qt-faststart was installed, it was copied with the name /usr/local/bin/ldconfig , so when you executed ldconfig in fact qt-faststart was been run, which obviously didn't help to fix the shared library issue   Renaming the /usr/local/bin/ldconfig to /usr/local/bin/qt-faststart made that the correct ldconfig could be invoked and fixed the missing .so issue.

  

解决方法:

打开ld.so.conf文件,添加一行:

vim /etc/ld.so.conf

/usr/bin/qt-faststart

执行:

ldconfig

 

转载于:https://www.cnblogs.com/zhongbin/p/3941526.html


http://www.niftyadmin.cn/n/1578850.html

相关文章

Java Web整合开发(8) -- JSTL

{0}转载于:https://www.cnblogs.com/thlzhf/p/3941762.html

MySQL表进阶操作

目录数据库约束约束类型实例聚合函数分组查询三大范式多表联查创建示例内连接外连接自连接子查询概念单行子查询多行子查询在from子句中使用子查询合并查询数据库约束 约束类型 NOT NULL&#xff1a;指示某列不能存储 NULL 值&#xff0c;也就是必须赋值&#xff0c;否则报错…

修复错误配置fstab文件导致系统无法正常启动

修复错误配置fstab文件导致系统无法正常启动本文出自 “sky” 博客&#xff0c;请务必保留此出处http://skymax.blog.51cto.com/365901/114394转载于:https://blog.51cto.com/xujpxm/1546349

linux mysql密码破解一张图解释

linux mysql密码破解一张图解释 posted on 2014-08-29 09:28 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/ruiy/p/explain.html

《设计模式系列》---享元模式

2019独角兽企业重金招聘Python工程师标准>>> 享元模式&#xff1a;运用共享技术有效的支持大量细粒度的对象。 /*** author stefanie zhao* date 2014-8-21 下午04:20:53*/ public abstract class WebSite {public abstract void use(); } /*** author stefanie zha…

MySQL代码操作

目录数据库操作初始化MySQL句柄连接MySQL服务器设置客户端字符集选择操作的数据库关闭数据库链接&#xff0c;销毁句柄数据操作增删改查查询的后续操作获取错误信息数据库操作 初始化MySQL句柄 MYSQL* mysql_init(MYSQL* mysql); //参数为空则动态申请句柄空间进行初始化,成功…

运维人员需重视非技术能力(老鸟经验分享)

2019独角兽企业重金招聘Python工程师标准>>> 运维人员需重视非技术能力 ######################################################### # 运维人员需重视非技术能力VIP培训群聊天记录分享 # #date:2011-06-27 #作者&#xff1a;老男孩---《老男孩linux就业培训中心 》…

项目——订单系统

目录项目描述功能技术点框架详细设计数据管理模块业务控制模块前端界面模块涉及知识点JSONValueWriterReader正则表达式MySQL语句MySQL代码httplib基础项目总结项目代码项目描述 功能 用户可以通过浏览器访问服务器获取菜品信息并进行点餐&#xff1b;管理员可以通过浏览器访…