FFmpeg的使用及常用参数

一.下载:

官网:http://ffmpeg.org/

二.demo:

 1  class Program
2 {
3 static void Main(string[] args)
4 {
5 string srcFileName = @"F:\资料\Demo\FFmpeg_Demo\videoold\PROMO.wmv";
6 string destFileName = @"F:\资料\Demo\FFmpeg_Demo\videonew\PROMO.mp4";
7
8 Process p = new Process();
9 p.StartInfo.FileName = @"F:\资料\Demo\FFmpeg_Demo\mencoder\ffmpeg.exe";
10 p.StartInfo.UseShellExecute = false;
11
12 p.StartInfo.Arguments = "-i " + srcFileName + GenerateDefaultSetting() + destFileName;
13
14
15 p.StartInfo.RedirectStandardInput = true;
16 p.StartInfo.RedirectStandardOutput = true;
17 p.StartInfo.RedirectStandardError = true;//把外部程序错误输出写到StandardError流中
18 p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);
19 p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
20 p.Start();
21 p.BeginErrorReadLine();//开始异步读取
22 p.WaitForExit();//阻塞等待进程结束
23 p.Close();//关闭进程
24 p.Dispose();//释放资源
25 Console.WriteLine("ok");
26 Console.ReadKey();
27 }
28 private static void p_ErrorDataReceived(object sender, DataReceivedEventArgs e)
29 {
30 Console.WriteLine(e.Data);
31 }
32 private static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
33 {
34 Console.WriteLine(e.Data);
35 }
36
37 private static string GenerateDefaultSetting()
38 {
39 string setting = string.Empty;
40 setting += " -y ";
41 //setting += " -b 800 ";//-b大于0就模糊【?】
42 setting += " -ab 56 ";
43 setting += " -ar 22050 ";
44 setting += " -qscale 4 ";
45 setting += " -r " + 29.970;
46 setting += " -ac 2 ";
47 setting += " -s " + 640 + "x" + 480 + " ";
48 return setting;
49 }
50 }

三.ffmpeg各种视频处理:(注意参数顺序)

1.视频转换:

avi-------------------------->flv

ffmpeg -i  file.avi   output.flv

MPEG-1--------------->MPEG-4

ffmpeg -i inputfile.mpg -f mp4 -acodec libfaac -vcodec mpeg4 -b 256k -ab 64k outputfile.mp4

MP3------------------->MPEG-4

ffmpeg -i inputfile.mp3 -f mp4 -acodec libaac -vn -ab 64k outputfile.mp4

DVD的VOB---------->VideoCD格式的MPEG-1

ffmpeg -i inputfile.vob -f mpeg -acodec mp2 -vcodec mpeg1video -s 352x240 -b 1152k -ab 128k outputfile.mpg

AVI------------------->H.264格式的M4V

ffmpeg -i inputfile.avi -f mp4 -acodec libfaac -vcodec libx264 -b 512k -ab 320k outputfile.m4v

任何------------------->东芝REGZA可辨识的MPEG2

ffmpeg -i inputfile -target ntsc-svcd -ab 128k -aspect 4:3 -s 720x480 outputfile.mpg

2.音频视频合并:ok

ffmpeg -i input1.avi -i input2.mp3 -vcodec copy -acodec copy out.avi

3.拆分音频视频:ok

提取音频:

ffmpeg -i input.flv -vn -acodec copy out.mp3

提取视频:

ffmpeg -i input.flv  -an -vcodec copy  out.flv ok

ffmpeg -i input.flv out.flv  -an -vcodec copy  error------->注意参数顺序

音视频都提取:

ffmpeg -i input.flv -an out1.flv -vn out2.mp3

4.提取图片:ok

ffmpeg -i input.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 out.jpg

5.压缩文件:ok

ffmpeg -i input.mp3 -ab 128 out.mp3

6.截取指定的时间间隔的视频:ok

ffmpeg -ss 00:00:10 -t 00:01:22 -i 五月天-突然好想你.mp3  out.mp3

7.屏幕录像:

ffmpeg -f x11grab -s xga -r 10 -i :0.0+0+0 wheer.avi

ffmpeg -f x11grab  -s 320x240  -r 10 -i :0.0+100+200 wheer.avi

ffmpeg -f x11grab -s xga    -qscale 5    -r 10 -i :0.0+0+0 wheer.avi

8.屏幕录像,同时录音:

ffmpeg -f oss -i /dev/dsp        -f x11grab -r 30 -s 1024x768 -i :0.0  output.mkv

ffmpeg   -ac 2 -f oss  -i  /dev/dsp   -f x11grab -r 30 -s 1024x768 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output.mkv

9.屏幕录像,指定窗口:

10.视频连接:

ffmpeg -i input1.avi -i input2.avi output.avi  -vcodec copy -acodec copy

11.分割视频:ok

ffmpeg -ss 01:00:00 -i input.mp4 -vcodec copy -acodec copy -t 00:06:00 out.mp4

四.参数:

1.常用参数:

-ab      bitrate      设置音频码率

-acodec  codec        使用codec编解码

-ac      channels     设置通道,缺省为1

-ar      freq         设置音频采样率

-r       fps          设置帧频,缺省25

-b       bitrate      设置比特率,缺省200kb/s

-qscale  6或4         使用动态码率来设置

-vcodec libx264  这个应该是个编码设置,网上查到 libx264.dll

2.更多参数:

参考百度百科:http://baike.baidu.com/link?url=ooW8425uMT5cipicRP7ian7qWKNH_P6A0AIZR7Ot5KJKCKjqHcAtNzcxN6_QhKWhB_0CyIo2teFFmVYF452-nq

参考官网:http://ffmpeg.org/ffmpeg-all.html

FFmpeg FFmpeg的使用及常用参数的更多相关文章

  1. c# ffmpeg常用参数

    c#  ffmpeg常用参数 转换文件格式的同时抓缩微图: ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 ...

  2. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

  3. chattr的常用参数详解

    chattr的常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口.每天每个人部署的 ...

  4. dmidecode常用参数

    dmidecode常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. dmidecode这个命令真是神器啊,他能快速的获取服务器的硬件信息,而且这个命令有很多的花式玩法,今 ...

  5. find常用参数详解

    find常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux系统中,在init 3模式情况下都是命令行模式,这个时候我们想要找到一个文件的就得依赖一个非常好用的 ...

  6. cat常用参数详解

    cat常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近,我的一个朋友对linux特别感兴趣,于是我觉得每天交给他一个命令的使用,这样一个月下来也会使用30个命令,基 ...

  7. find一些常用参数的一些常用实例和一些具体用法和注意事项。

    find一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使用name选项: 文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用.  可以使用某种文件名模式来匹配 ...

  8. ls常用参数

    ls常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩Linux的老司机们每天都要敲的命令,但是这个鸡蛋的命令还有很多中玩法哟~跟着我一起敲一遍吧!在这里我就列举几个常 ...

  9. C#中Messagebox.Show()常用参数用法详解

    声明:IWin32Window owner   ,  HelpNavigator navigator ,    string keyword 上面的三个参数类型不是很了解.没有做讨论. 等以后了解多了 ...

随机推荐

  1. DWR推送技术

    “服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语.它是继“Ajax”之后又一个倍受追捧的Web技术.“服务器推送技术”最近的流行跟“Ajax ”有着密切的关系. ...

  2. Netsharp快速入门(之4) 基础档案(之C 实体建模 计量单位、商品、往来单位)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 3.3.2   基础档案建模 1.在基础档案项目,右击,选择新建包, 2.录入包的名称,录入名称.完成后点确定 3.3.2.1 计量 ...

  3. android手机配置hosts文件

    Android设备测试服务器时,可能需要修改 hosts 文件指定域名到对应的 IP 地址.Android 是基于 Linux 的系统,与 Linux 类似,通过 hosts 文件来设置. 在 And ...

  4. PCA算法

    本文出处:http://blog.csdn.net/xizhibei http://www.cnblogs.com/bourneli/p/3624073.html PrincipalComponent ...

  5. Using sql azure for Elmah

    The MSDN docs contain the list of T-SQL that is either partially supported or not supported.  For ex ...

  6. Jquery方法的应用

    <body> <div id="one"><span>one</span></div><div class=&qu ...

  7. 跨平台base64数据传输注意问题

    今天用base64编码传输json串,android端那边始终看不到图片! 首先发现android端接收的json串长度不一致,仔细研究发现android端接收到的json数据里把服务器数据里的&qu ...

  8. Leetcode#145 Binary Tree Postorder Traversal

    原题地址 递归写法谁都会,看看非递归写法. 对于二叉树的前序和中序遍历的非递归写法都很简单,只需要一个最普通的栈即可实现,唯独后续遍历有点麻烦,如果不借助额外变量没法记住究竟遍历了几个儿子.所以,最直 ...

  9. matrix_last_acm_1

    password 123 A http://acm.hust.edu.cn/vjudge/contest/view.action?cid=96950#problem/A 题意:n个数初始ai,m次操作 ...

  10. [工作积累] jboolean is neither JNI_TRUE nor JNI_FALSE

    jboolean result = env->CallBooleanMethod(ShopDataAndroid.IAPBridge_Object, ShopDataAndroid.IAPBri ...