FFmpeg 转码工具
FFmpeg 官网:http://ffmpeg.org/
简介
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库 libavcodec,为了保证高可移植性和编解码质量,libavcodec 里很多 code 都是从头开发的。
耻辱柱事件
简而言之,许多播放器使用了 FFmpeg 的代码或模块但没有遵守 LGPL/GPL 协议,FFmpeg 将许多不遵守协议的播放器发布在其官网页面上,名为 Hall Of Shame ,故称为耻辱柱事件,其页面现已停止更新。
涉及耻辱柱事件的播放器包括国内的暴风影音、QQ影音,甚至还有著名的 KMplayer 和 Potplayer。以下为网上流传的信息:
FFmpeg 耻辱柱 (Hall Of Shame):
由于 FFmpeg 是在 LGPL/GPL 协议下发布的(如果使用了其中一些使用 GPL 协议发布的模块则必须使用 GPL 协议),任何人都可以自由使用,但必须严格遵守 LGPL/GPL 协议。目前有很多播放软件都使用了 FFmpeg 的代码,但它们并没有遵守LGPL/GPL协议,没有公开任何源代码。我们应该对这种侵权行为表示耻辱。
2009 年加入 FFmpeg 的播放软件:暴风影音、QQ影音、KMP都在其列。
2009 年 2 月,韩国名软 KMPlayer 被 FFmpeg 开源项目发现使用了它们的代码和二进制文件,但是没有按照规定/惯例开放相应说明/源码。因此被人举报,进入了 FFmpeg 官网上的耻辱黑名单。
2009 年 5 月,网友 cehoyos 下载了暴风影音软件,解压之后发现其安装程序内包含了大量的开源和私有解码器:avcodec,avformat,avutil,x264,xvid,bass,wmvdmod 等,之后暴风影音被正式加入到 FFmpeg 耻辱名单。
2009 年 11 月,网友 roo_zhou 向 FFmpeg 举报,指出QQ影音的 credit 只给出了修改的 FFmpeg 源码下载,声称是 LGPL 许可证。但实际是修改过的 ffdshow,采用的是 GPL 许可证,之后 QQ影音 被正式加入到 FFmpeg 耻辱名单之列。
常用操作
1.分离视频音频流
1 | //分离视频流 |
2.视频解复用
1 | ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264 |
3.视频转码
1 | //-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制 |
4.视频封装
1 | ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file |
5.视频剪切
1 | //提取图片 |
7.YUV 序列播放
1 | ffplay -f rawvideo -video_size 1920x1080 input.yuv |
8.YUV 序列转 AVI
1 | ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi |
9. 使用 ffmpeg 从视频中提取图片
1 | ffmpeg -i "你是我的小呀小苹果儿.mp4" -r 1 -q:v 2 -f image2 image-3%d.jpeg |
-i 选项用来获取输入文件,在这里是视频文件名你是我的小呀小苹果儿.mp4,
-r 选项设置每秒提取图片的帧数。我想要每秒提取一帧
10. 用 FFmpeg 从视频截取任意一帧图片
1 | ffmpeg -i /home/pandy/视频/1.mp4 -y -f image2 -ss 1 -s 352x240 -vframes 1 /home/pandy/视频/test1.jpg |
11.解决达芬奇解析不到声音问题
1 | fmpeg -i "1.mp4" -c:a aac "output.mp4" |
常用参数说明
主要参数
1 | -i 设定输入流 |
视频参数
1 | -b 设定视频流量,默认为200Kbit/s |
音频参数
1 | -ar 设定采样率 |