码迷,mamicode.com
首页 > 其他好文 > 详细

FFmpeg FFmpeg的使用及常用参数

时间:2015-04-20 18:15:40      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:

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     }
View Code

 

三.参数:

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

 

fmpeg作为Linux下的LGPL开源程序,在Windows下编译需要特殊的工具。我这里提供的版本,使用MinGW编译,只有一个可执行文件,可直接运行(命令行程序)。
FLV向其它格式(avi(mpeg4)、asf、mpeg)转换的简易方法:(圆括号内必填,方括号内可选)
转换成wmv/asf
ffmpeg -i (要转换的flv文件完整路径) -f asf -vcodec (wmv1或wmv2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的asf/wmv文件完整路径)
转换成mpeg1
ffmpeg -i (要转换的flv文件完整路径) -f mpeg -vcodec mpeg1video [-b 视频码率] -acodec mp2 [-ab 音频码率] (输出的mpg文件完整路径)
转换成avi(msmpeg4)
ffmpeg -i (要转换的flv文件完整路径) -f avi -vcodec (msmpeg4或msmpeg4v1或msmpeg4v2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的avi文件完整路径)

ffmeg的7个技巧:
1 音频转换
ffmpeg -i my_audio.wav my_audio.mp3-i 后为要转换的音频文件,my_audio.mp3为目的音频文件
2 视频转换
ffmpeg -i my_video.mpeg -s 500×500 my_video.flv-i 后为源视频文件, -s 表示设置目标视频文件的分辨率 my_video.flv为目的视频文件
3 从视频中截取图片
ffmpeg -i test.mpg image%d.jpg默认1s截取25张图片,可以通过-r设置每秒截取的图片数量
-r fps 设置帧率,也就是每秒截取图片的数量(默认25)
ffmpeg -i test.mpg -r 1 image%d.jpg这样子每1s截取1张图片
还可以设置截取间隔,起止
-ss 设定时间位置,语法:hh:mm:ss[.xxx]
-t 时长:限制转码/捕获视频的时间,语法:hh:mm:ss[.xxx]
ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png在第10秒开始,以每秒截取25张图片的速度,截取5秒时长的图片
4 从视频中采集音频
ffmpeg -i video.avi -f mp3 audio.mp3-f 强制选择格式
ffmpeg -i video.avi -vn audio.mp3-vn 取消截取视频(也就是只输出音频文件)
5 创建截屏视频
ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg0.0 是你X11 server的屏幕显示号吗,和DISPLAY一样样的.
此条命令以每秒25帧的速率来截取wxga屏幕视频,当然这里可以用-s 来设置视频分辨率,输出文件是/tmp/outputFile.mpg
6 用图片制作视频
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
将`img001.jpg’, `img002.jpg‘这种顺序排列的图片文件转制作为视频
7 从webcam中截取视频
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
同时截取音频和视频:
ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg
/dev/video0为视频设备 /dev/dsp为音频设备

2.更多参数:

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

 

FFmpeg FFmpeg的使用及常用参数

标签:

原文地址:http://www.cnblogs.com/zlp520/p/4442179.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!