您的位置:威尼斯城vnsc登入平台 > 网络信息 > 威尼斯城vnsc登入平台:玩转FFmpeg的7个小技巧

威尼斯城vnsc登入平台:玩转FFmpeg的7个小技巧

2019-10-21 04:25

FFmpeg堪称音频和视频应用程序的瑞士军刀,提供了丰富的选项和灵活性.很多时候用户为了看视频和听音乐都安装了ffmeg.更多关于ffmeg的详细介绍:here,可以通过ffmpeg -formats查看FFmpeg支持的视音频格式,左侧若是E表明可以编码,D表明可以解码

FFmpeg的使用及常用参数

本文着重介绍命令行下ffmeg的7个技巧:

一.下载:

1 音频转换

官网:http://ffmpeg.org/

ffmpeg -i my_audio.wav  my_audio.mp3-i 后为要转换的音频文件,my_audio.mp3为目的音频文件

二.demo:

2 视频转换

威尼斯城vnsc登入平台 1威尼斯城vnsc登入平台 2

ffmpeg -i my_video.mpeg -s 500×500 my_video.flv-i 后为源视频文件, -s 表示设置目标视频文件的分辨率   my_video.flv为目的视频文件

 1  class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             string srcFileName = @"F:资料DemoFFmpeg_DemovideooldPROMO.wmv";
 6             string destFileName = @"F:资料DemoFFmpeg_DemovideonewPROMO.mp4";
 7 
 8             Process p = new Process();
 9             p.StartInfo.FileName = @"F:资料DemoFFmpeg_Demomencoderffmpeg.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     }

3 从视频中截取图片

View Code

ffmpeg -i test.mpg image%d.jpg默认1s截取25张图片,可以通过-r设置每秒截取的图片数量

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

-r fps 设置帧率,也就是每秒截取图片的数量(默认25)

1.视频转换:

ffmpeg -i test.mpg -r 1 image%d.jpg这样子每1s截取1张图片

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

还可以设置截取间隔,起止

ffmpeg -i  file.avi   output.flv

-ss 设定时间位置,语法:hh:mm:ss[.xxx]

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

-t 时长:限制转码/捕获视频的时间,语法:hh:mm:ss[.xxx]

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

ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png在第10秒开始,以每秒截取25张图片的速度,截取5秒时长的图片

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

4 从视频中采集音频

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

ffmpeg -i video.avi -f mp3 audio.mp3-f 强制选择格式

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

ffmpeg -i video.avi -vn audio.mp3-vn 取消截取视频(也就是只输出音频文件)

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

5 创建截屏视频

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

ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg0.0 是你X11 server的屏幕显示号吗,和DISPLAY一样样的.

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

此条命令以每秒25帧的速率来截取wxga屏幕视频,当然这里可以用-s 来设置视频分辨率,输出文件是/tmp/outputFile.mpg

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

6 用图片制作视频

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

ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg

2.音频视频合并:ok

将`img001.jpg’, `img002.jpg'这种顺序排列的图片文件转制作为视频

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

7 从webcam中截取视频

3.拆分音频视频:ok

ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg

提取音频:

同时截取音频和视频:

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

ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg

提取视频:

/dev/video0为视频设备 /dev/dsp为音频设备

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

威尼斯城vnsc登入平台 3

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      

本文由威尼斯城vnsc登入平台发布于网络信息,转载请注明出处:威尼斯城vnsc登入平台:玩转FFmpeg的7个小技巧

关键词: