diff --git a/ScreenCaptureLib/Screencast/FFmpegOptions.cs b/ScreenCaptureLib/Screencast/FFmpegOptions.cs index 0390fd9a4..24e1ffc5e 100644 --- a/ScreenCaptureLib/Screencast/FFmpegOptions.cs +++ b/ScreenCaptureLib/Screencast/FFmpegOptions.cs @@ -67,8 +67,8 @@ public FFmpegOptions() ShowError = true; // x264 - x264_CRF = 23; - Preset = FFmpegPreset.medium; + x264_CRF = 30; + Preset = FFmpegPreset.fast; // VPx VPx_CRF = 12; @@ -77,9 +77,9 @@ public FFmpegOptions() XviD_qscale = 3; // Audio + AAC_bitrate = 128; Vorbis_qscale = 3; MP3_qscale = 4; - AAC_bitrate = 128; } public bool IsAudioSourceSelected() diff --git a/ScreenCaptureLib/Screencast/FFmpegOptionsForm.Designer.cs b/ScreenCaptureLib/Screencast/FFmpegOptionsForm.Designer.cs index 62bf8afd7..231ff5a1b 100644 --- a/ScreenCaptureLib/Screencast/FFmpegOptionsForm.Designer.cs +++ b/ScreenCaptureLib/Screencast/FFmpegOptionsForm.Designer.cs @@ -311,7 +311,7 @@ private void InitializeComponent() this.gbFFmpegExe.Controls.Add(this.btnDownload); this.gbFFmpegExe.Controls.Add(this.btnFFmpegBrowse); this.gbFFmpegExe.Controls.Add(this.txtFFmpegPath); - this.gbFFmpegExe.Location = new System.Drawing.Point(8, 216); + this.gbFFmpegExe.Location = new System.Drawing.Point(8, 184); this.gbFFmpegExe.Name = "gbFFmpegExe"; this.gbFFmpegExe.Size = new System.Drawing.Size(648, 56); this.gbFFmpegExe.TabIndex = 6; @@ -349,7 +349,7 @@ private void InitializeComponent() // gbCommandLinePreview // this.gbCommandLinePreview.Controls.Add(this.txtCommandLinePreview); - this.gbCommandLinePreview.Location = new System.Drawing.Point(8, 349); + this.gbCommandLinePreview.Location = new System.Drawing.Point(8, 317); this.gbCommandLinePreview.Name = "gbCommandLinePreview"; this.gbCommandLinePreview.Padding = new System.Windows.Forms.Padding(8); this.gbCommandLinePreview.Size = new System.Drawing.Size(648, 96); @@ -372,7 +372,7 @@ private void InitializeComponent() // this.gbCommandLineArgs.Controls.Add(this.btnFFmpegHelp); this.gbCommandLineArgs.Controls.Add(this.tbUserArgs); - this.gbCommandLineArgs.Location = new System.Drawing.Point(8, 280); + this.gbCommandLineArgs.Location = new System.Drawing.Point(8, 248); this.gbCommandLineArgs.Name = "gbCommandLineArgs"; this.gbCommandLineArgs.Size = new System.Drawing.Size(648, 56); this.gbCommandLineArgs.TabIndex = 7; @@ -460,7 +460,7 @@ private void InitializeComponent() // // btnTest // - this.btnTest.Location = new System.Drawing.Point(136, 344); + this.btnTest.Location = new System.Drawing.Point(136, 312); this.btnTest.Name = "btnTest"; this.btnTest.Size = new System.Drawing.Size(88, 23); this.btnTest.TabIndex = 8; @@ -470,7 +470,7 @@ private void InitializeComponent() // // btnCopyPreview // - this.btnCopyPreview.Location = new System.Drawing.Point(227, 344); + this.btnCopyPreview.Location = new System.Drawing.Point(227, 312); this.btnCopyPreview.Name = "btnCopyPreview"; this.btnCopyPreview.Size = new System.Drawing.Size(53, 23); this.btnCopyPreview.TabIndex = 9; @@ -659,7 +659,7 @@ private void InitializeComponent() // cbShowError // this.cbShowError.AutoSize = true; - this.cbShowError.Location = new System.Drawing.Point(10, 184); + this.cbShowError.Location = new System.Drawing.Point(9, 424); this.cbShowError.Name = "cbShowError"; this.cbShowError.Size = new System.Drawing.Size(295, 17); this.cbShowError.TabIndex = 11; diff --git a/ScreenCaptureLib/Screencast/FFmpegOptionsForm.resx b/ScreenCaptureLib/Screencast/FFmpegOptionsForm.resx index 548aae886..e9d41603a 100644 --- a/ScreenCaptureLib/Screencast/FFmpegOptionsForm.resx +++ b/ScreenCaptureLib/Screencast/FFmpegOptionsForm.resx @@ -112,12 +112,12 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 17, 17 diff --git a/ScreenCaptureLib/Screencast/ScreencastOptions.cs b/ScreenCaptureLib/Screencast/ScreencastOptions.cs index 1ba3a2423..56bd801c8 100644 --- a/ScreenCaptureLib/Screencast/ScreencastOptions.cs +++ b/ScreenCaptureLib/Screencast/ScreencastOptions.cs @@ -105,6 +105,9 @@ public string GetFFmpegArgs() case FFmpegVideoCodec.libx264: // https://trac.ffmpeg.org/wiki/x264EncodingGuide args.AppendFormat("-crf {0} ", FFmpeg.x264_CRF); args.AppendFormat("-preset {0} ", FFmpeg.Preset.ToString()); + args.AppendFormat("-tune {0} ", "zerolatency"); + // -pix_fmt yuv420p required otherwise can't stream in Chrome + args.Append("-pix_fmt yuv420p "); break; case FFmpegVideoCodec.libvpx: // https://trac.ffmpeg.org/wiki/vpxEncodingGuide args.AppendFormat("-crf {0} ", FFmpeg.VPx_CRF); @@ -114,25 +117,19 @@ public string GetFFmpegArgs() break; } - // -pix_fmt yuv420p required for libx264 otherwise can't stream in Chrome - if (FFmpeg.VideoCodec == FFmpegVideoCodec.libx264) - { - args.Append("-pix_fmt yuv420p -tune zerolatency "); - } - if (FFmpeg.IsAudioSourceSelected()) { switch (FFmpeg.AudioCodec) { + case FFmpegAudioCodec.libvoaacenc: // http://trac.ffmpeg.org/wiki/AACEncodingGuide + args.AppendFormat("-c:a libvo_aacenc -ac 2 -b:a {0}k ", FFmpeg.AAC_bitrate); // -ac 2 required otherwise failing with 7.1 + break; case FFmpegAudioCodec.libvorbis: // http://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide args.AppendFormat("-c:a {0} -qscale:a {1} ", FFmpegAudioCodec.libvorbis.ToString(), FFmpeg.Vorbis_qscale); break; case FFmpegAudioCodec.libmp3lame: // http://trac.ffmpeg.org/wiki/Encoding%20VBR%20(Variable%20Bit%20Rate)%20mp3%20audio args.AppendFormat("-c:a {0} -qscale:a {1} ", FFmpegAudioCodec.libmp3lame.ToString(), FFmpeg.MP3_qscale); break; - case FFmpegAudioCodec.libvoaacenc: // http://trac.ffmpeg.org/wiki/AACEncodingGuide - args.AppendFormat("-c:a libvo_aacenc -ac 2 -b:a {0}k ", FFmpeg.AAC_bitrate); // -ac 2 required otherwise failing with 7.1 - break; } } diff --git a/ShareX/Forms/AboutForm.resx b/ShareX/Forms/AboutForm.resx index 9ba7b7060..ea8ec223f 100644 --- a/ShareX/Forms/AboutForm.resx +++ b/ShareX/Forms/AboutForm.resx @@ -112,10 +112,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Contributors: @@ -127,18 +127,18 @@ Amazon S3 and DreamObjects support: Alan Edwardes - http://alanedwardes.com External libraries: -Greenshot Image Editor: http://sourceforge.net/projects/greenshot -FTP Library: http://biko.codeplex.com -Json.NET: http://json.codeplex.com -SSH.NET: http://sshnet.codeplex.com +Greenshot Image Editor: https://bitbucket.org/greenshot/greenshot +Json.NET: https://json.codeplex.com +SSH.NET: https://sshnet.codeplex.com Icons: http://p.yusukekamiyamane.com -ImageListView: http://code.google.com/p/imagelistview +ImageListView: https://code.google.com/p/imagelistview AviWriter: https://code.google.com/p/aforge FFmpeg Windows builds: http://ffmpeg.zeranoe.com/builds 7-Zip: http://www.7-zip.org -SevenZipSharp: http://sevenzipsharp.codeplex.com +SevenZipSharp: https://sevenzipsharp.codeplex.com DirectShow video and audio device: https://github.com/rdp/screen-capture-recorder-to-video-windows-free QrCode.Net: https://qrcodenet.codeplex.com +System.Net.FtpClient: https://netftp.codeplex.com Copyright © 2007 - 2014 ShareX Developers