コード例 #1
0
 public bool MediaConvertPCM_S16E(string input, string output, int sampleRate)
 {
     try
     {
         if (!FFmpegService.FFmpegExists)
         {
             throw new FFmpegNotFoundException();
         }
         FFmpegArgsBuilder fFmpegArgsBuilder = new FFmpegArgsBuilder();
         fFmpegArgsBuilder.GlobalOptionArgs
         .OverwriteOutput()
         .SetThreadQueueSize(512);
         fFmpegArgsBuilder.SetInputFile(input);
         fFmpegArgsBuilder.SetOutputFile(output)
         //.SetAudioFormat(AudioFormat.s16le)
         .SetAudioCodec(FFmpegAudioCodec.pcm_s16le)
         .SetAudioFrequency(sampleRate)
         .SetAudioChannels(2)
         ;
         FFmpegService.StartFFmpeg(fFmpegArgsBuilder.Args);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
コード例 #2
0
 public bool MediaCut(string input, string output, TimeSpan start, TimeSpan?end = null)
 {
     try
     {
         if (!FFmpegService.FFmpegExists)
         {
             throw new FFmpegNotFoundException();
         }
         FFmpegArgsBuilder fFmpegArgsBuilder = new FFmpegArgsBuilder();
         fFmpegArgsBuilder.GlobalOptionArgs
         .OverwriteOutput()
         .SetThreadQueueSize(512);
         var inputOptionArgs = fFmpegArgsBuilder.SetInputFile(input)
                               .SetSeek(start);
         var outputOptionArgs = fFmpegArgsBuilder.SetOutputFile(input)
         ;
         if (end != null)
         {
             outputOptionArgs
             .SetSeekEnd(end.Value)
             .SetAudioCodec(Codecs.FFmpegAudioCodec.copy)
             .SetVideoCodec(Codecs.FFmpegVideoCodec.copy);
         }
         FFmpegService.StartFFmpeg(fFmpegArgsBuilder.Args);
         return(true);
     }
     catch
     {
         return(false);
     }
 }
コード例 #3
0
 public bool Open(string filePath)
 {
     try
     {
         FFmpegArgsBuilder fFmpegArgsBuilder = new FFmpegArgsBuilder();
         fFmpegArgsBuilder.GlobalOptionArgs
         .OverwriteOutput()
         .SetThreadQueueSize(512);
         fFmpegArgsBuilder.SetInputPipe(videoPipeName)
         .SetFramerate(this.VideoWriterArgs.FrameRate)
         .SetVideoFormat(FFmpegVideoFormat.rawvideo)
         .SetPixFormat(FFmpegPixFormat.rgb32)
         .SetVideoSize(this.VideoWriterArgs.Width, this.VideoWriterArgs.Height)
         ;
         var outputOptionArgs = fFmpegArgsBuilder.SetOutputFile(filePath)
                                .SetFramerate(this.VideoWriterArgs.FrameRate)
                                .SetFileLength(CommonWriterArgs.FileLength ?? 0, () => CommonWriterArgs.FileLength != null)
                                .SetVideoSize((int)(this.VideoWriterArgs.Width * this.VideoWriterArgs.ScaleWidth), (int)(this.VideoWriterArgs.Height * this.VideoWriterArgs.ScaleHeight))
         ;
         ((VideoCodecBase)this.VideoWriterArgs.VideoCodec).Apply(this.VideoWriterArgs, outputOptionArgs);
         var videoBufferSize = this.VideoWriterArgs.Width * this.VideoWriterArgs.Height * 4;
         this.videoPipeWrite = new PipeServerWrite(videoPipeName, videoBufferSize);
         if (this.Audioable)
         {
             fFmpegArgsBuilder.SetInputPipe(audioPipeName)
             .SetAudioFormat(FFmpegAudioFormat.s16le)
             .SetAudioCodec(FFmpegAudioCodec.pcm_s16le)
             .SetAudioFrequency(16000)
             .SetAudioChannels(2);
             outputOptionArgs
             .SetAudioFrequency(this.AudioWriterArgs.AudioFrequency)
             .SetAudioChannels(this.AudioWriterArgs.AudioChannels)
             ;
             ((AudioCodecBase)this.AudioWriterArgs.AudioCodec).Apply(this.AudioWriterArgs, outputOptionArgs);
             var audioBufferSize = (int)((1000.0 / this.VideoWriterArgs.FrameRate) * (44100 / 100.0) * 2 * 2 * 2);
             this.audioPipeWrite = new PipeServerWrite(audioPipeName, audioBufferSize);
         }
         this.ffmpegProcess = FFmpegService.StartFFmpeg(fFmpegArgsBuilder.Args);
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
コード例 #4
0
 public bool MediaConvertAuto(string input, string output)
 {
     try
     {
         if (!FFmpegService.FFmpegExists)
         {
             throw new FFmpegNotFoundException();
         }
         FFmpegArgsBuilder fFmpegArgsBuilder = new FFmpegArgsBuilder();
         fFmpegArgsBuilder.GlobalOptionArgs
         .OverwriteOutput()
         .SetThreadQueueSize(512);
         fFmpegArgsBuilder.SetInputFile(input);
         fFmpegArgsBuilder.SetOutputFile(output);
         FFmpegService.StartFFmpeg(fFmpegArgsBuilder.Args);
         return(true);
     }
     catch
     {
         return(false);
     }
 }