2013-07-19 48 views
3

將.mp4文件轉換爲.3gp在windowsphone 8中使用captureuresource我在孤立存儲器中獲得了視頻,但是我需要將該視頻上傳到服務器,每當我嘗試發送視頻時,該視頻的大小是巨大,所以我需要壓縮(轉換)視頻從MP4到3GP使用c#.net

當我通過附件發送視頻消息時,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分辨率,但它不會幫助我。

回答

0

目前沒有公共的API允許你從MP4轉換到3GP。

一種選擇是將FFmpeg移植到Windows Phone上,但目前如果有人已經這樣做了,它不會公開發布。

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×240的分辨率以及大約20MB的4分鐘視頻的文件大小。從我的目的來看,仍然不理想,但是有了很大的改進。 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

希望這有助於...