实际使用中总结的关于ffmpeg对视频的处理的记录文档

具体信息:

http://ffmpeg.org/download.html 官网下载ffmpeg关于ffmpeg的安装详细步骤和说明 装ffmpeg 方式,Linux和windows下的http://bbs.csdn.net/topics/390519382 php 调用ffmpeg ,http://bbs.csdn.net/topics/390521910 python调用ffmpeg ,http://www.4wei.cn/archives/category/php 一个资源网站https://ffmpeg.zeranoe.com/builds/ ffmpeg windows版本的下载http://ffmpeg.org/download.html 这是Linux版本的.http://blog.csdn.net/kissdeath/article/details/6062277 命令可以参考http://www.360doc.com/content/16/0518/11/496343_560111633.shtml 可以参考

可用的ffmpeg 命令

eg.

最简单的抓屏 ffmpeg -f gdigrab -i desktop ../ffmpeg-video/out.mpg 截图 ffmpeg -i C:\xampp\www\acp\resources\ffmpeg\out.avi -y -f image2 -t 0.001 -s 352×240 C:\xampp\www\acp\resources\ffmpeg\jt.jpg 视频格式转换 ffmpeg -i C:\xampp\www\acp\resources\ffmpeg\temp.mp4 C:\xampp\www\acp\resources\ffmpeg\out.avi 抽帧 ffmpeg -i C:\xampp\www\acp\resources\ffmpeg\out.avi -r 1 -s 640×320 -f image2 C:\xampp\www\acp\resources\ffmpeg\foo-%03d.jpeg ffmpeg 从视频中生成gif图片 ffmpeg -i C:\xampp\www\acp\resources\ffmpeg\temp.mp4 -t 10 -s 320×240 -pix_fmt rgb24 C:\xampp\www\acp\resources\ffmpeg\jidu1.gif 图片合成视频 ffmpeg -f image2 -i C:\xampp\www\acp\resources\ffmpeg\foo-%03d.jpeg -r 12 -s 320×240 ../ffmpeg-video/foo.avi 录制视频 ffmpeg -f video4linux2 -t 20 -s 320*240 -r 10 -i /dev/video0 /tmp/te.ogv 暂时不可用 给视频添加水印(老版本是这样用的) ffmpeg -i input.flv -vhook ‘/usr/lib/vhook/watermark.so -f watermark.png -t 222222 -m 1′ output.flv ffmpeg -y -i E:\ffmpeg\ffmpeg-video\temp.mp4 -acodec copy -b 300k -vfilters “movie=0:png:watermark.png [wm];[in][wm] overlay=5:5:1 [out]” output.mp4 视频加水印—cmd中代码亲测可用(左上方加水印)”movie =’1.png’ ” 这是在bin中的同级目录, movie=’\\ffmpeg\\ffmpeg-video\\2.png’ 这是自选目录,需要进行反斜杠的处理.E:\ffmpeg\bin>ffmpeg -i E:\ffmpeg\ffmpeg-video\temp.mp4 -vf “movie=’\\ffmpeg\\ffmpeg-video\\2.png’ [watermark]; [in][watermark] overlay=10:10 [out]” E:\ffmpeg\ffmpeg-video\out.mp4

若是要在其他位置添加logo需要做如下修改即可:

eg.

Top left cornerffmpeg -i inputvideo.avi -vf “movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:10 [out]” outputvideo.flv Top right cornerffmpeg -i inputvideo.avi -vf “movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]” outputvideo.flv Bottom left cornerffmpeg -i inputvideo.avi -vf “movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]” outputvideo.flv Bottom right cornerffmpeg -i inputvideo.avi -vf “movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]” outputvideo.flv参考链接:How to watermark a video using FFmpeg

之前一直有问题,是ffmpeg用的版本不对,老版本的ffmpeg用的-vhook,新版本用的-vf参数,这里需要注意区别。(我现在用的ffmpeg0.8版本)

还有个问题就是logo的大小不能大于视频帧的大小,之前也是测试没有注意,随便整了一个比视频尺寸大的logo.jpg,导致添加水印失败,还好,失败是会有如下的提示信息:

具体细节的参考网站:

https://my.oschina.net/zhuanghaoren/blog/200684

eg.

-y 表示有同名的output.flv存在时不提示,直接覆盖-i input.flv 表示要进行水印添加处理的视频-acodec copy 表示保持音频不变-b 300k 表示处理视频的比特率,用-vcodec copy时报错,使用其他工具获取到原始视频比特率后加到这里,保持比特率基本不变,不然默认为200k,视频有损。output.flv 处理后的视频-vfilters “…” 中间便是水印处理参数,重要的是overlay=后面的部分,第一个参数表示水印距离视频左边的距离,第二个参数表示水印距离视频上边的距离,第三个参数 为1,表示支持透明水印。使用透明的png图片进行视频编码后,成功获得带透明水印的视频,并且画质也比较好。具体的参数主要参数:-i 设定输入流-f 设定输出格式-ss 开始时间 视频参数:-b 设定视频流量,默认为200Kbit/s-r 设定帧速率,默认为25 –每秒有多少帧,一帧就是一个画面-s 设定画面的宽与高-aspect 设定画面的比例-vn 不处理视频-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 音频参数:-ar 设定采样率-ac 设定声音的Channel数-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器-an 不处理音频1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流2.视频解复用 ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264ffmpeg –i test.avi –vcodec copy –an –f m4v test.2643.视频转码 ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 //转码为码流原始文件ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //转码为码流原始文件ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //转码为封装文件//-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制4.视频封装 ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file5.视频剪切 ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg //提取图片ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi //剪切视频//-r 提取图像的频率,-ss 开始时间,-t 持续时间6.视频录制 ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi7.YUV序列播放 ffplay -f rawvideo -video_size 1920×1080 input.yuv8.YUV序列转AVI ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi