ffmpeg录音录像 ffmpeg,ffplay,ffprobe主要用来录音录像播放查看多媒体文件的信息。本文带领大家学习常用命令。常用参数比较多,可以使用ffprobe --help来查看详细的帮助信息
#region ffmpeg录音录像 ffmpeg,ffplay,ffprobe主要用来录音录像播放查看多媒体文件的信息。本文带领大家学习常用命令。常用参数比较多,可以使用ffprobe --help来查看详细的帮助信息
#region ffmpeg 录像
Process process = null;
private void btnFfmepgStart_Click(object sender, EventArgs e)
{
#region MyRegion
//System.Diagnostics.Process.Start(@"C:\Users\Administrator\Desktop\Debug\WindowsFormsTestVideo.exe","参数122");
//Process process1 = new Process();
//process1.StartInfo = new ProcessStartInfo(@"C:\Users\Administrator\Desktop\Debug\WindowsFormsTestVideo.exe");
//process1.StartInfo.Arguments = "参数12277777777777777";
//process1.Start();
process1.WaitForExit(10000);
process1.Close();
//process1.Dispose();
#endregion
//ProcessStartInfo StartInfo = new ProcessStartInfo(@"C:\Windows\System32\cmd.exe");
process = new Process();
process.StartInfo = new ProcessStartInfo(@"C:\Windows\System32\cmd.exe");
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
//process.StartInfo.WorkingDirectory = @"C:\Windows\System32";// AppDomain.CurrentDomain.BaseDirectory;
process.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
string a = "ffmpeg -rtbufsize 200M -f dshow -i video=\"USB Camera\" -f dshow -i audio=\"麦克风阵列 (Realtek High Definition Audio)\" -pix_fmt yuv420p -b:v 300k -r 10 -vcodec libx264 -tune zerolatency -acodec aac -b:a 32k -ar 16000 -af volume=10 -y \"123.mp4\"";
string at = @"ffmpeg -rtbufsize 200M -f dshow -i video=""USB Camera"" -f dshow -i audio=""麦克风阵列 (Realtek High Definition Audio)"" -pix_fmt yuv420p -b:v 300k -r 10 -vcodec libx264 -tune zerolatency -acodec aac -b:a 32k -ar 16000 -af volume=10 -y ""123.mp4""";
//Log(a, MessageType.info);
//Log(at, MessageType.info);
//process.StandardInput.WriteLine(a);
process.OutputDataReceived += Process_OutputDataReceived;
process.ErrorDataReceived += Process_ErrorDataReceived;
//process.StartInfo.Arguments = a;
process.Start();
process.BeginErrorReadLine();
process.BeginOutputReadLine();
a = @"ffmpeg.exe -rtbufsize 200M -f dshow -i video=""USB Camera"" -f dshow -i audio=""麦克风阵列 (Realtek High Definition Audio)"" -pix_fmt yuv420p -tune zerolatency -af volume=5 -y 123.mp4";
//噪音很大,去掉 -af volume=5,噪音会好很多
//-ac 通道 声道 1,2;
//-ar 8000 声音的采样率 psp 24000Hz
//-ab 音频数据流,一般选择32,64,96,128 44100置成这个参数音频底噪会小,但是音色会有些发闷
//-vol音量 放大倍数
a = @"ffmpeg.exe -rtbufsize 200M -f dshow -i video=""USB Camera"" -f dshow -i audio=""麦克风阵列 (Realtek High Definition Audio)"" -pix_fmt yuv420p -tune zerolatency -ac 1 -ar 8000 -ab 44100 -vol 800 -y 123.mp4";
process.StandardInput.WriteLine(a);
//process.StandardInput.WriteLine(at/* + Environment.NewLine*/);
//process.StandardInput.WriteLine("\r\n");
Log(a, MessageType.info);
Log(at, MessageType.info);
lblffmepg.ForeColor = Color.Green;
lblffmepg.Text = "开始录音录像";
}
private void Process_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
Log(e.Data, MessageType.error);
}
private void Process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Log(e.Data, MessageType.info);
}
private void btnFfmpegStop_Click(object sender, EventArgs e)
{
string a = "q";
process.StandardInput.WriteLine(a);
process.StandardInput.WriteLine("exit");
process.WaitForExit();
process.Close();
process.Dispose();
Process.Start("123.mp4");
lblffmepg.ForeColor = DefaultForeColor;
lblffmepg.Text = null;
}
#endregion
#region ffplay 播放
// ffplay -autoexit ww.mp4
#endregion
#region ffprobe 查看信息
// ffprobe -show_packets ww.mp4
#endregion
#endregion
注意:ffmpeg相关的类库拷贝到运行目录,下载地址:https://download.csdn.net/download/LongtengGensSupreme/21059889