我重写了前一个问题。我创建了一台桌面录音机,除了一件事以外它完美无缺。当我尝试对视频进行编码并将媒体放入我的输出文件夹.xesc
时,它会抛出异常。
请记住,输出An unhandled exception of type Microsoft.Expression.Encoder.InvalidMediaFileException occured in Microsoft.Expression.Encoder.dll Aditional Information: Access Denied (Exception from HRESULT: 0x80070005(E_AccessDenied))
将保存到C盘上的Videos文件夹中。但是,当我尝试将其转换为.wmv格式时,它会抛出以下异常。
void Encode(string jobPath)
{
using (Job j = new Job())
{
MediaItem mediaItem = new MediaItem(Environment.GetFolderPath(Environment.SpecialFolder.MyVideos) + @"\IvanSoft Desktop Recorder");
var size = mediaItem.OriginalVideoSize;
WindowsMediaOutputFormat WMV_Format = new WindowsMediaOutputFormat();
WMV_Format.VideoProfile = new Microsoft.Expression.Encoder.Profiles.AdvancedVC1VideoProfile();
WMV_Format.AudioProfile = new Microsoft.Expression.Encoder.Profiles.WmaAudioProfile();
WMV_Format.VideoProfile.AspectRatio = new System.Windows.Size(16, 9);
WMV_Format.VideoProfile.AutoFit = true;
if (size.Width >= 1920 && size.Height >= 1080)
{
WMV_Format.VideoProfile.Size = new System.Drawing.Size(1920, 1080);
WMV_Format.VideoProfile.Bitrate = new Microsoft.Expression.Encoder.Profiles.VariableUnconstrainedBitrate(6000);
}
else if (size.Width >= 1280 && size.Height >= 720)
{
WMV_Format.VideoProfile.Size = new System.Drawing.Size(1280, 720);
WMV_Format.VideoProfile.Bitrate = new Microsoft.Expression.Encoder.Profiles.VariableUnconstrainedBitrate(4000);
}
else
{
WMV_Format.VideoProfile.Size = new System.Drawing.Size(size.Width, size.Height);
WMV_Format.VideoProfile.Bitrate = new Microsoft.Expression.Encoder.Profiles.VariableUnconstrainedBitrate(2000);
}
mediaItem.VideoResizeMode = VideoResizeMode.Letterbox;
mediaItem.OutputFormat = WMV_Format;
j.MediaItems.Add(mediaItem);
j.CreateSubfolder = false;
j.OutputDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyVideos) + @"\IvanSoft Desktop Recorder.xesc";
j.EncodeProgress += new EventHandler<EncodeProgressEventArgs>(j_EncodeProgress);
j.Encode();
}
}
我在下面发布了编码器。
****源代码******
以下是处理编码的源代码。我正在处理一些事情,如果你发现任何错误或任何更好的事情,请告诉我。它完美地工作并放置.xesc格式但它不会保存.wmv
.xesc
这不是一个问题,因为我可以手动转换Save_btnClik
,但这需要时间。当我按下{{1}}时,我希望它能够正常工作。这发生在win8.1和win10中。
我需要获得哪种许可才能获得访问权限?
答案 0 :(得分:0)
为什么你不使用&#34; SaveFileDiaLog&#34;。我认为这是最好的方法。你可以在&#34;工具箱&#34;中找到它。在Winform_application Visual studio中
答案 1 :(得分:0)
好的我发现Microsoft Expression Encoder 4并没有真正将文件保存为.wmv格式。它只将.xesc更改为.wmv。
我发现这一点后,我把它转换为我认为的.wmv我把它加载到Movie Maker,它说.xesc不支持。
因此,最终结果是MEE4编码器将生成.xesc格式。然后我也注意到真正转换文件的第三方转换器。视频和声音未同步。因此,除非我在某处错过了一段代码,否则第三方转换器就不行了。
所以我必须想办法真正将.xesc转换为另一种格式并保持帧速和同步。