ffmpeg主要是用来对视频进行处理的工具,功能强大。现在比较大的视频网站都会对视频进行切割,这样做可以减小带宽的压力。ffmpeg可以实现这样的功能。安装ffmpeg最好是安装稳定最新版,版本过旧,加水印是加不上去的。
一,ffmpeg最新版安装
1,下载atrpms-repo
# wget http://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm //centos7 # wget http://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm //centos6
2,安装atrpms-repo
# rpm -Uvh rpmfusion-free-releas*rpm
3,安装ffmpeg
# yum install ffmpeg
二,ffmpeg用法
1,视频裁剪
# ffmpeg -ss 00:00:00 -t 00:00:03 -y -i test.mp4 -vcodec copy -acodec copy test1.mp4
说明:上面的这个例子是将test.mp4视频的前3秒,重新生成一个新视频。
-ss 开始时间,如: 00:00:00,表示从0秒开始,格式也可以00:00:0
-t 时长,如: 00:00:03,表示截取3秒长的视频,格式也可以00:00:3
-y 如果文件已存在强制替换;
-i 输入,后面是空格,紧跟着就是输入视频文件;
-vcodec copy 和 -acodec copy表示所要使用的视频和音频的编码格式,这里指定为copy表示原样拷贝;
2,视频截图
# ffmpeg -i test.mp4 -y -f mjpeg -ss 3 -t 1 test1.jpg # ffmpeg -i test.mp4 -y -f image2 -ss 3 -vframes 1 test1.jpg
上面二个例子都表示,在第三秒的时候,截图。
3,获取视频时间
[root@localhost test]# ffmpeg -i test.mp4 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,// 00:00:33.73
4,视频转换
视频的格式有很多,以mp4和flv为例子
# ffmpeg -i test.mp4 -ab 56 -ar 22050 -qmin 2 -qmax 16 -b 320k -r 15 -s 320x240 outputfile.flv //mp4 转 flv # ffmpeg -i outputfile.flv -copyts -strict -2 test.mp4 //flv 转 mp4
5,视频加水印
#ffmpeg -y -i test.mp4 -acodec copy -vf "movie=uwsgi.jpg [logo]; [in][logo] overlay=10:10:1 [out]" test2.mp4
overlay=10:10:1,后三个数据表示是距离左边的距离,距离上边的距离,是否透明,1表示透明。上例我用的是jpg,当然不可能透明。
# ffmpeg -y -i test.mp4 -acodec copy -vf "movie=uwsgi.jpg [logo]; [in][logo] overlay=enable='lte(t,1)' [out]" test2.mp4
overlay=enable='lte(t,1)' ,这个参数表示,水印在前一秒显示。
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/linux/1584.html