我正在尝试在 Windows Phone 8 中以特定分辨率捕获 MP4 视频(具体来说,480x480)。我知道我不能使用预设以外的尺寸,而且 480x480 不是预设。如何转换捕获的视频(例如 640x480)并裁剪顶部和底部以使其成为 480x480?欢迎任何免费或开源库(在 Windows Phone 上运行)。请不要回答诸如“使用外部服务器”之类的答案,我需要一个设备上的解决方案。
问问题
578 次
1 回答
1
使用 Windows.Phone.Media.Capture API 和AudioVideoCaptureDevice类
AudioVideoCaptureDevice.OpenAsync 的第二个参数 - 请参阅此链接- 是分辨率。您可以使用 AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensor) 获得分辨率
编辑:要设置自定义分辨率,请尝试AudioVideoCaptureDevice.SetCaptureResolutionAsync
编辑2:您可以尝试以下方法来转换录制的视频:(找不到我从soz到作者的代码!)
StorageFolder isoStore = await ApplicationData.Current.LocalFolder.GetFolderAsync("Shared");
var file = await isoStore.CreateFileAsync("foos1.wmv", CreationCollisionOption.ReplaceExisting);
using (var s = await file.OpenAsync(FileAccessMode.ReadWrite))
{
Windows.Foundation.Size resolution = new Windows.Foundation.Size(640, 480);
avDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back,
AudioVideoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back).Last());
VideoBrush videoRecorderBrush = new VideoBrush();
videoRecorderBrush.SetSource(avDevice);
viewfinderRectangle.Fill = videoRecorderBrush;
await avDevice.StartRecordingToStreamAsync(s);
Thread.Sleep(30000);
await avDevice.StopRecordingAsync();
}
new MediaPlayerLauncher()
{
Media = new Uri(file.Path, UriKind.Relative),
}.Show();
于 2013-10-02T08:10:46.580 回答