public void Test1() { var builder = new FFMpegConverterBuilder(); builder .ConfigGeneric(option => //跳過40秒取10秒 option.SetStartPosition(40).SetDuration(10) ) .ConfigVideo(option => //設定新尺寸且轉換速度設為非常快,調整品質為23 option.SetSize(352, 240).SetPreset(VideoOption.Preset.VeryFast).SetCrf(23) ) .ConfigAudio(option => //設定聲音取樣率為16K且為單聲道,比特率為32K option.SetChannels(1).SetFrequency(16 * 1000).SetBitrate(32 * 1000) ); var converter = builder.Build(); /* * converter.Convert( * new string[] { @"C:\Users\xupeiyao\Downloads\NARUTO.mp4" }, * @"C:\Users\xupeiyao\Downloads\FFMPEGConverter.mp4") * .Subscribe(r => { * * });*/ //var command = builder.CreateCommand(new string[] { "input.mp4" }, "output.mp4"); }
static void Main(string[] args) { var sdConverter = new FFMpegConverterBuilder() .SetExecutePath(@"D:\FFMpeg-Runtime\bin\ffmpeg.exe") .ConfigVideo(v => { v.SetSize(CommonSize.SD); }) .Build(); var factory = new ConnectionFactory() { HostName = "192.168.1.2" }; var connection = factory.CreateConnection(); var channel = connection.CreateModel(); var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { var path = Encoding.UTF8.GetString(ea.Body); var temp_outputPath = @"D:\OutputFiles\" + Guid.NewGuid() + ".mp4"; sdConverter.Convert(path, temp_outputPath) .Subscribe( (ConvertResult result) => { channel.BasicAck(ea.DeliveryTag, false); // 任務處理完畢,剔除Queue if (result.ExitCode == 0) { // 送出轉檔成功訊息 channel.BasicPublish(string.Empty, "convert-success", null, Encoding.UTF8.GetBytes(temp_outputPath)); } else { // 送出轉檔失敗訊息 channel.BasicPublish(string.Empty, "convert-fail", null, Encoding.UTF8.GetBytes(path)); } }, (Exception e) => { channel.BasicAck(ea.DeliveryTag, false); // 任務處理完畢,剔除Queue // 送出轉檔失敗訊息 channel.BasicPublish(string.Empty, "convert-fail", null, Encoding.UTF8.GetBytes(path + Environment.NewLine + e.ToString())); }); }; channel.BasicConsume( queue: "convert", autoAck: false, consumer: consumer); Console.ReadKey(); }
public void Test2() { var builder = new FFMpegConverterBuilder(); builder .ConfigGeneric(option => //跳過40秒取10秒 option.SetStartPosition(40).SetDuration(10) ) .ConfigVideo(option => //去除影像 option.RemoveVideo() ) .ConfigAudio(option => //設定聲音取樣率為16K且為單聲道,比特率為32K option.SetChannels(1).SetFrequency(16 * 1000).SetBitrate(32 * 1000) ); //var kk = builder.CreateCommand(new string[] { "input.mp4" }, "output.mp3"); }