3

使用 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但对我没有帮助。

4

2 回答 2

1

如果可能,您可以将您的应用程序升级到 Windows Phone 8.1 Silverlight(您需要下载 Visual Studio 2013 的更新 2 并将开发人员预览版放在您的开发人员设备上)。转换本身很简单——我对一个非常复杂的 WP 8.0 应用程序没有任何问题(尽管先备份你的应用程序!)

完成后,您就可以访问该Windows.Media.Capture.MediaCapture库了。这将允许您更改为比使用VideoCaptureDevice. 例如,您可以创建一个将视频录制到 QVGA 的配置文件,如下所示:

MediaEncodingProfile profile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Qvga);

这将为您提供 320 x 240 的分辨率和约 20MB 的文件大小,用于 4 分钟的视频。从我的目的来看仍然不理想,但有很大的改进。MediaEncodingProfile也有类似的方法MediaEncodingProfile.CreateWmv()MediaEncodingProfile.CreateAvi()但我还不能让这些工作(请参阅我的问题:MediaEncodingProfile.CreateWmv 给出“没有找到合适的转换来编码或解码内容。”错误)。

我用来使用 MediaCapture 进行视频录制的教程可以在这里找到:http: //msdn.microsoft.com/en-us/library/windows/apps/xaml/dn642092.aspx

希望这可以帮助...

于 2014-06-09T14:02:03.097 回答
0

目前没有允许您从 MP4 转换为 3GP 的公共 API。

一种选择是将 FFmpeg 移植到 Windows Phone,但目前,如果有人做过,它不公开。

于 2014-03-11T22:52:01.533 回答