centos 下 ffmpeg 转码和添加水印

26点 林涛 17651℃ 0评论

建立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 -y install ffmpeg ffmpeg-devel

验证安装:
输入命令: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

然后:
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

进入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 install
ldconfig

转码方法:(加水印)
ffmpeg -i “/AA/1.mov” -vf “movie=0:png:umelook.png [wm];[in][wm] overlay=10:10:1 [out]” -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 222.MP4

显示在视频的左上角overlay参数为 overlay=0:0
显示在右上角为 overlay= main_w-overlay_w:0
显示在右下角为 overlay= main_w-overlay_w:main_h-overlay_h
显示在左下角为 overlay=0: main_h-overlay_h
上面的0可以改为5,或10像素,以便多留出一些空白。

提取影版时间方法:
ffmpeg -i “/root/test.wmv” 2>&1 | grep ‘Duration’ | cut -d ‘ ‘ -f 4 | sed s/,//

影片截图方法:
/usr/bin/ffmpeg -i 1.mov -ss 00:00:43 -t 00:00:01 -s 120×90 -r 1 -f mjpeg1.jpg

参数方面的问题,我还没怎么研究明白,有弄这个的,还请一起交流交流

注:
/root/test.wmv 是待转码的电影源文件
logo.png是水印图片,需要指定路径,否则找不到该图片(图片为透明背景)
overlay=20:20:1是水印在影片中的位置,从左上角算起,像素,1是透明度值
222.mp4是转成后的mp4电影

原文地址:http://aiape.iteye.com/blog/2024464

如需转载请注明: 转载自26点的博客

本文链接地址: centos 下 ffmpeg 转码和添加水印

转载请注明:26点的博客 » centos 下 ffmpeg 转码和添加水印

喜欢 (0)
发表我的评论
取消评论

表情
(19)个小伙伴在吐槽
  1. 谢谢博主分享,很实用! 欢迎回访:www.tmcore.com
    www.tmcore.com2016-12-09 15:00 回复
  2. 这个文章写的好,转走了!
    奇虎分享网2016-08-17 00:21 回复
  3. 非常感谢分享如此好的文章,赞一下!
  4. 感谢分享 祝您开心快乐每一天北京装修公司
    北京室内装饰2016-08-15 18:02 回复
  5. 文章很好~!赞
    男孩资源网2016-08-14 12:57 回复
  6. 文章很好~!赞
    男孩资源网2016-08-14 12:34 回复
  7. 学习
    猪OK网2016-07-30 10:30 回复
  8. 学习了,这个刚好有需要,谢谢
    优品家具2016-07-29 16:59 回复
  9. 多谢分享,学习了
    上海婚介2016-07-28 16:46 回复
  10. 多谢分享,学习了
    试玩平台2016-07-26 18:31 回复
  11. 很详细的思路,学习了
  12. 很不错!按照你的思路已经做了一个demo 挺好用的 谢谢@!
    教室网2016-07-26 12:32 回复
  13. 多谢分享
  14. 举报了上面的广告评论。来您的博客主要是想咨询您。关于登录验证,以及保持登录状态的问题。这方面您有没有相关的资料或者指导。。。原来我们的网站 app ,登录成功后,会将 用户的userid加密后存在用户本地。然后只要这个字符串不变,就一直保持登录状态。现在要求,如果用户在登录状态下,修改了电话或者密码 都要用户重新登录,或者是更新本地的校验字符串。我考虑了很久,本地不能存用户的密码以及其他信息,可逆加密的和不可逆的都不安全,那本地该存什么字符串,怎么存,会话的时候,如何验证,才能保证用户登录状态是真实的,而且可以多设备同时登录呢?还望指导。。。一二。。谢了!!盼复。
    changxiaoer2016-07-25 20:09 回复
    • 非常感谢,最近垃圾信息感觉确实有点多了;你说的问题我说一点我的思路,不一定对,仅供参考。第一种方法:吧用户的userid、电话、密码 放到一起加密,然后保存在用户本地用来做校验;第二种,如果用户触发了修改电话、修改密码操作,直接销毁用户登录信息,然后返回到登录地址;多设备同时登录这个如果不做限制默认应该都是的;
      码农26点2016-07-26 00:08 回复
      • 谢谢了!我根据你说的想一下。
        changxiaoer2016-07-26 10:47 回复
  15. 顶!此回复虽仅有一字,却深刻地表达了本人的深深情感,可谓言简意赅,一字千金,扣人心弦!再加上以感叹号收尾,点睛之笔,妙笔生花,意境深远!顶虽然不难写,难得是s楼主喝到完全找不到开机键在哪里时,但依然来发文的精神。
    类风湿医院2016-07-25 17:39 回复
  16. 先收藏了,谢谢分享
    青梅历史网2016-07-20 17:10 回复
  17. 写的很详细啊!谢谢分享。
    资本在线2016-07-20 15:41 回复