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); } }
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); } }
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); } }
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); } }