Windows phone 8 在windowsphone 8中使用c#.net将.mp4文件转换为.3gp

Windows phone 8 在windowsphone 8中使用c#.net将.mp4文件转换为.3gp,windows-phone-8,video-capture,Windows Phone 8,Video Capture,使用capturesource,我在独立存储中获取了视频,但我需要将该视频上传到服务器, 每当我尝试发送视频时,视频的大小都很大,所以我需要将视频从MP4压缩(转换)到3GP 当我通过附件发送视频消息时,windows phone的默认消息屏幕显示“正在处理视频”,并将.mp4视频转换为.3gp 为了实现从MP4到3GP的转换,我做了很多研究。请帮助我 代码是 CaptureSource captureSource = new CaptureSource(); private st

使用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
的分辨率,但对我没有帮助。

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


一个选项是将FFmpeg移植到Windows Phone,但目前,如果有人已经这样做了,它还没有公开提供。

如果您有可能,您可以将应用升级到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的分辨率和4分钟视频的~20MB文件大小。从我的目标来看仍然不理想,但有很大的改进
MediaEncodingProfile
也有类似于
MediaEncodingProfile.CreateWmv()
MediaEncodingProfile.CreateAvi()
的方法,但我还无法让这些方法发挥作用(请参见我的问题:)

我使用MediaCapture获取视频录制的教程可以在这里找到:

希望这有助于