mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-02 18:26:27 +13:00
#2124: Adding H.264 NVENC & HEVC (H.265) NVENC screen recording support
This commit is contained in:
parent
b74d1085f0
commit
17629d3d5d
4 changed files with 14 additions and 2 deletions
|
@ -96,7 +96,11 @@ public enum FFmpegVideoCodec
|
||||||
[Description("Animated GIF (gif)")]
|
[Description("Animated GIF (gif)")]
|
||||||
gif,
|
gif,
|
||||||
[Description("x265 (mp4)")]
|
[Description("x265 (mp4)")]
|
||||||
libx265
|
libx265,
|
||||||
|
[Description("H.264 NVENC (mp4)")]
|
||||||
|
h264_nvenc,
|
||||||
|
[Description("HEVC NVENC (mp4)")]
|
||||||
|
hevc_nvenc
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum FFmpegPreset
|
public enum FFmpegPreset
|
||||||
|
|
|
@ -92,6 +92,8 @@ public string Extension
|
||||||
{
|
{
|
||||||
case FFmpegVideoCodec.libx264:
|
case FFmpegVideoCodec.libx264:
|
||||||
case FFmpegVideoCodec.libx265:
|
case FFmpegVideoCodec.libx265:
|
||||||
|
case FFmpegVideoCodec.h264_nvenc:
|
||||||
|
case FFmpegVideoCodec.hevc_nvenc:
|
||||||
case FFmpegVideoCodec.gif:
|
case FFmpegVideoCodec.gif:
|
||||||
return "mp4";
|
return "mp4";
|
||||||
case FFmpegVideoCodec.libvpx:
|
case FFmpegVideoCodec.libvpx:
|
||||||
|
|
|
@ -455,7 +455,7 @@ Otherwise it can't keep up with recording and a lot of frame drops will happen.<
|
||||||
<value>120, 20</value>
|
<value>120, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cboVideoCodec.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cboVideoCodec.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>104, 21</value>
|
<value>160, 21</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cboVideoCodec.TabIndex" type="System.Int32, mscorlib">
|
<data name="cboVideoCodec.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
|
|
|
@ -179,6 +179,12 @@ public string GetFFmpegArgs(bool isCustom = false)
|
||||||
case FFmpegVideoCodec.libxvid: // https://trac.ffmpeg.org/wiki/Encode/MPEG-4
|
case FFmpegVideoCodec.libxvid: // https://trac.ffmpeg.org/wiki/Encode/MPEG-4
|
||||||
args.AppendFormat("-qscale:v {0} ", FFmpeg.XviD_qscale);
|
args.AppendFormat("-qscale:v {0} ", FFmpeg.XviD_qscale);
|
||||||
break;
|
break;
|
||||||
|
case FFmpegVideoCodec.h264_nvenc: // https://trac.ffmpeg.org/wiki/HWAccelIntro#NVENC
|
||||||
|
case FFmpegVideoCodec.hevc_nvenc:
|
||||||
|
args.AppendFormat("-preset {0} ", "default"); // TODO: Add preset option
|
||||||
|
args.AppendFormat("-b:v {0}k ", "10000"); // TODO: Add bitrate option
|
||||||
|
args.AppendFormat("-pix_fmt {0} ", "yuv420p");
|
||||||
|
break;
|
||||||
case FFmpegVideoCodec.gif:
|
case FFmpegVideoCodec.gif:
|
||||||
args.AppendFormat("-preset {0} ", FFmpegPreset.ultrafast);
|
args.AppendFormat("-preset {0} ", FFmpegPreset.ultrafast);
|
||||||
args.AppendFormat("-tune {0} ", FFmpegTune.zerolatency);
|
args.AppendFormat("-tune {0} ", FFmpegTune.zerolatency);
|
||||||
|
|
Loading…
Reference in a new issue