Пример #1
0
        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");
        }
Пример #2
0
        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();
        }
Пример #3
0
        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");
        }