コード例 #1
0
ファイル: VideoStream.cs プロジェクト: ywscr/Xabe.FFmpeg
 /// <inheritdoc />
 public IVideoStream SetSize(VideoSize size)
 {
     _size = $"-s {size.ToFFmpegFormat()} ";
     return(this);
 }
コード例 #2
0
        public static IConversion VisualiseAudio(string inputPath, string outputPath, VideoSize size,
                                                 PixelFormat pixelFormat       = PixelFormat.yuv420p,
                                                 VisualisationMode mode        = VisualisationMode.bar,
                                                 AmplitudeScale amplitudeScale = AmplitudeScale.lin,
                                                 FrequencyScale frequencyScale = FrequencyScale.log)
        {
            IMediaInfo   inputInfo   = FFmpeg.GetMediaInfo(inputPath).GetAwaiter().GetResult();
            IAudioStream audioStream = inputInfo.AudioStreams.FirstOrDefault();
            IVideoStream videoStream = inputInfo.VideoStreams.FirstOrDefault();

            string filter = $"\"[0:a]showfreqs=mode={mode}:fscale={frequencyScale}:ascale={amplitudeScale},format={pixelFormat},scale={size.ToFFmpegFormat()} [v]\"";

            return(New()
                   .AddStream(audioStream)
                   .AddParameter($"-filter_complex {filter}")
                   .AddParameter("-map [v]")
                   .SetFrameRate(videoStream != null ? videoStream.Framerate : 30) // Pin framerate at the original rate or 30 fps to stop dropped or duplicated frames
                   .SetOutput(outputPath));
        }
コード例 #3
0
 /// <inheritdoc />
 public IConversion AddDesktopStream(VideoSize videoSize, double framerate = 30, int xOffset = 0, int yOffset = 0)
 {
     return(AddDesktopStream(videoSize.ToFFmpegFormat(), framerate, xOffset, yOffset));
 }
コード例 #4
0
 /// <inheritdoc />
 public IConversion GetScreenCapture(double frameRate, int xOffset = 0, int yOffset = 0, VideoSize?videoSize = null) =>
 GetScreenCapture(frameRate, xOffset, yOffset, videoSize?.ToFFmpegFormat());
コード例 #5
0
 /// <inheritdoc />
 public IVideoStream SetSize(VideoSize size)
 {
     _parameters.Add(new ConversionParameter($"-s {size.ToFFmpegFormat()}"));
     return(this);
 }