使用 capturesource 我在独立存储中获得了视频,但我需要将该视频上传到服务器, 每当我尝试发送视频时,大小都很大,所以我需要将视频从 MP4 压缩(转换)为 3GP
每当我通过附件发送视频消息时,Windows Phone 的默认消息屏幕会显示“正在处理视频”,并将 .mp4 视频转换为 .3gp。
我尝试了很多研究来实现从 MP4 到 3GP 的转换,请帮助我
代码是
CaptureSource captureSource = new CaptureSource();
private string isoVideoFileName = "CameraMovie.mp4";
private FileSink fileSink;
VideoCaptureDevice webcam = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
AudioCaptureDevice audio = CaptureDeviceConfiguration.GetDefaultAudioCaptureDevice();
captureSource.VideoCaptureDevice = webcam;
captureSource.AudioCaptureDevice = audio;
fileSink = new FileSink();
fileSink.CaptureSource = captureSource;
fileSink.IsolatedStorageFileName = isoVideoFileName;
captureSource.Start();
我尝试更改 VideoCaptureDevice 的分辨率,但没有帮助。
请您参考如下方法:
如果可能,您可以将您的应用程序升级到 Windows Phone 8.1 Silverlight(您需要下载 Visual Studio 2013 更新 2 并将开发人员预览版安装到您的开发人员设备上)。转换本身很简单——我对非常复杂的 WP 8.0 应用程序没有任何问题(尽管首先备份您的应用程序!)
一旦完成,您就可以访问 Windows.Media.Capture.MediaCapture 库。这将允许您更改为比使用 VideoCaptureDevice 可用的分辨率更多的分辨率。例如,您可以创建一个将视频录制到 QVGA 的配置文件,如下所示:
MediaEncodingProfile profile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Qvga);
4 分钟的视频分辨率为 320 x 240,文件大小约为 20MB。从我的目的来看仍然不理想,但是有很大的进步。 MediaEncodingProfile 也有像 MediaEncodingProfile.CreateWmv() 和 MediaEncodingProfile.CreateAvi() 这样的方法,但我还不能让它们工作(在这里查看我的问题:MediaEncodingProfile.CreateWmv gives "No suitable transform was found to encode or decode the content." error)。
我以前使用 MediaCapture 获取视频录制的教程可以在这里找到:http://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn642092.aspx
希望这有助于...




