c# - 在 Windows Phone 8 中以非标准尺寸录制(或录制后转换)视频

标签 c# windows-phone-8 windows-phone video-processing

我正在尝试在 Windows Phone 8 中以特定分辨率(具体来说,480x480)捕获 MP4 视频。我知道我不能使用预设以外的尺寸,而且 480x480 不是预设。如何转换捕获的视频(例如 640x480)并裁剪顶部和底部以使其成为 480x480?欢迎任何免费或开源库(在 Windows Phone 上运行)。请不要回答诸如“使用外部服务器”之类的问题,我需要一个设备上的解决方案。

最佳答案

使用 Windows.Phone.Media.Capture API 和 AudioVideoCaptureDevice

AudioVideoCaptureDevice.OpenAsync 的第二个参数 - 参见 this link - 是决议。您可以使用 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();

关于c# - 在 Windows Phone 8 中以非标准尺寸录制(或录制后转换)视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17166851/

相关文章:

c# - 如何在 PhantomJS + Selenium 中隐藏控制台?

c# - VS 在 'Set As StartUp Project' 后崩溃

c# - 在 XAML(带绑定(bind))与 C# 中绘制路径。一个有效,一个无效

c# - 如何从 C# 中的数据集中获取日期?

video - 在 Windows Phone 8 应用程序中录制视频时,如何从相机获取每一帧?

css - 在 Windows Phone 8 HTC 上,将 Bootstrap 站点从纵向旋转到横向会创建一个水平滚动条

xaml - 向 ListPickerItem 添加一个键

c# - 如何倒序显示 LongListSelector 的项目?

windows-phone-7 - Wp7 上的内存泄漏检测工具

windows-phone-8 - 需要在 wp8 应用程序中添加崩溃报告功能