极力推荐开发者在PC上安装ffmpeg环境,以便测试ffmpeg命令行,测试 通过后再在手机上测试使用。
如何在PC上配置ffmpeg环境请参照链接
http://zh.wikihow.com/%E5%9C%A8Windows%E4%B8%8A%E5%AE%89%E8%A3%85FFmpeg%E7%A8%8B%E5%BA%8F
windows64下ffmepg环境
http://download.csdn.net/detail/chinawallace/8851045
1.视频叠加水印(建议添加与视频大小一致并且透明的水印,如480x480)
//单水印
ffmpeg -i in.mp4 -i watermark1.png -filter_complex “overlay=x=0:y=0” -f mp4 out.mp4
//动态水印,2张图片间隔200毫秒
ffmpeg -i in.mp4 -i watermark1.png -i watermark2.png -filter_complex “overlay=x= ‘if(eq(floor(mod(t*5,2)),0),0,-500)’:y=0,overlay=x=’if(eq(floor(mod(*5,2)),1),0,-500)’:y=0” -f mp4 out.mp4
//视频叠加gif
ffmpeg -y -i in.mp4 -i in.gif -filter_complex “overlay=0:0” -t 10 -acodec copy out.mp4
2.视频裁剪
//裁剪0秒到10秒视频
ffmpeg -i in.mp4 -ss 0 -t 10 -vcodec copy -acodec copy out.mp4
3.格式转换
//yuv转mp4
ffmpeg -y -f rawvideo -pix_fmt yuv420p -s 480x480 -r 15 -i in.yuv -vcodec libx264 -profile:v baseline -preset ultrafast out.mp4
//静态图片转mp4
ffmpeg -y -loop 1 -f image2 -i Goddess.png -vcodec mpeg4 -r 15 -t 10 Goddess.mp4
//ts转mp4
ffmpeg -y -i in.ts -vcodec copy -acodec copy -vbsf h264_mp4toannexb out.mp4
//mp4转ts
ffmpeg -y -i in.mp4 -vcodec copy -acodec copy -absf aac_adtstoasc -f mp4 -movflags faststart out.ts
//gif转ts
ffmpeg -y -i http://ww4.sinaimg.cn/mw1024/89cfdb1bgw1ek0ig2zx6gg207h05me81.gif -vf “scale=480:-1,pad=480:480:0:240-ih/2” -pix_fmt
yuv420p -vcodec libx264 -vbsf h264_mp4toannexb 0.ts
可以先将多个gif先转成ts,然后用-i “concat:0.ts|1.ts”合并,注意 转出来的视频是不带音频的,这个需要自己加一个空音频或者音乐,否则可能无 法播放该视频。pad参数可以让视频上下留黑,类似电影的效果。
ffmpeg -i “concat:F:\text.ts|F:\frame.ts” -vcodec copy -acodec copy -absf aac_adtstoasc -f mp4 -movflags faststart F:\test.mp4
4.其他
//加速视频
ffmpeg -i input.avi -vf “setpts=0.5*PTS” output.avi
//放慢视频
ffmpeg -i input.avi -vf “setpts=2.0*PTS” output.avi
//删除视频文件的旋转信息
-metadata:s:v rotate=\”\”
//提取视频的 yuv 和 pcm 数据
ffmpeg -i in.mp4 -ss 0 -t 10 -vn -acodec pcm_s16le -f s16le -ar 44100 -ac 1 a.pcm -ss 0 -t 10 -an -vcodec rawvideo -f rawvideo -s 640x480 -pix_fmt nv21 a.yuv
//下载视频
ffmpeg -y -i “http://xxx.xxx.com/test.mp4” -vcodec copy -acodec copy out.mp4 还可以加-ss -t 参数截取视频,如果无法 copy,可以重新转码 -vcodec libx264 -profile:v main -acodec libfdk_aac -ar 44100 -ac 1 -b:a 64k
//转码参数
-profile:v
baseline
-preset
ultrafast
加这个转码速度快但质量差
-profile:v
main
加这个转码速度慢但质量很好
5.注意
a) 如果查看ffmpeg执行的log
加-d stdout -loglevel verbose 即可在 logcat 中看到执行的命令行输出, 例如:ffmpeg -d stdout -loglevel verbose -i in.mp4 -ss 0 -t 10 -vcodec copy -acodec copy out.mp4
b) 没有生成输出文件的问题
注意检测AndroidManifest.xml是否漏了写磁盘的权限。
注意ffmpeg的log输出,一般会给出错误提示。
注意文件是否已经生成,需要删除或者加‐y参数。
注意相册里不会马上显示新生成的视频,除非你手动向系统相册新增记 录
去除视频的logo可用这个软件
http://jingyan.baidu.com/article/84b4f565ce77fd60f6da32df.html
更多ffmpeg命令参照
http://blog.csdn.net/chinawallace/article/details/46537321