Windows phone 8 在windowsphone 8中使用c#.net将.mp4文件转换为.3gp
使用capturesource,我在独立存储中获取了视频,但我需要将该视频上传到服务器, 每当我尝试发送视频时,视频的大小都很大,所以我需要将视频从MP4压缩(转换)到3GP 当我通过附件发送视频消息时,windows phone的默认消息屏幕显示“正在处理视频”,并将.mp4视频转换为.3gp 为了实现从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 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获取视频录制的教程可以在这里找到:
希望这有助于