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

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

1
使用Windows.Phone.Media.Capture API和AudioVideoCaptureDevice类。 此链接是AudioVideoCaptureDevice.OpenAsync的第二个参数,表示分辨率。您可以使用AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensor)获取分辨率。
编辑:要设置自定义分辨率,请尝试AudioVideoCaptureDevice.SetCaptureResolutionAsync
编辑2:您可以尝试以下内容来转换录制的视频:(找不到代码来源,对作者道歉!)
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();

AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensor)不包含所需的分辨率(例如,我需要192x144)。 - CAMOBAP
我已经使用了 GetAvailableCaptureResolutions(CameraSensorLocation.Back).Last(),它返回了 640x480,但我需要的是 192x144。 - CAMOBAP
@PaulZahra 我已经知道如何在预设分辨率下捕获、显示/保存视频。我的问题不是“如何在wp8上捕获视频”,而是“如何以自定义分辨率捕获?”。正如CAMOBAP所说,不是所有分辨率都可用。 - Can Poyrazoğlu
就像我说的那样,看看编辑部分,其中一个编辑指定了SetCaptureResolutionAsync,它允许您指定一个包含宽度、高度的大小结构变量。 - Paul Zahra
@PaulZahra 对于编辑1的回答:不幸的是,它只接受预定义分辨率之一(例如640x480、1280x720、1920x1080等),而任何不在预定义值列表中的值都会引发异常。对于编辑2的情况:可以使用正确的布局和XAML中设置的变换来显示裁剪视频,但我不知道如何将其记录到视频文件中。 - Can Poyrazoğlu
你在使用AudioVideoCaptureDevice而不是仅限于640 x 480的VideoCaptureDevice吗? - Paul Zahra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接