2013-06-18 6 views
8

Windows Phone 8의 특정 해상도 (480x480)에서 MP4 비디오를 캡처하려고합니다. 저는 프리셋 이외의 크기를 사용할 수 없다는 것을 알고 있으며, 480x480은 프리셋이 아닙니다. 캡쳐 된 비디오 (예 : 640x480)를 변환하고 상단 및 하단을 잘라내어 480x480으로 만드는 방법은 무엇입니까? 모든 무료 또는 오픈 소스 라이브러리 (Windows Phone에서 실행되는)는 환영합니다. '외부 서버 사용'과 같은 대답으로 대답하지 마십시오. 기기 내 솔루션이 필요합니다.Windows Phone 8에서 비표준 크기로 비디오 레코딩 (또는 레코딩 변환)

답변

1

는 사용 Windows.Phone.Media.Capture API와 AudioVideoCaptureDevice.OpenAsync에 대한 AudioVideoCaptureDevice 클래스

두 번째 매개 변수 - this link를 참조하십시오 - 해상도입니다. 그리고 당신은 AudioVideoCaptureDevice.GetAvailableCaptureResolutions에게 (센서)

편집을 사용하여 해상도를 얻을 수 있습니다 : 사용자 정의 해상도 시도 설정하려면 AudioVideoCaptureDevice.SetCaptureResolutionAsync

편집 2 : 녹화 된 비디오를 변환하는 다음과 같이 뭔가를 시도 할 수 있습니다 : (여기서 찾을 수 없습니다 내가 제작하는 SOZ의 코드!)

StorageFolder isoStore = await ApplicationData.Current.LocalFolder.GetFolderAsync("Shared"); 
     var file = await isoStore.CreateFileAsync("foos1.wmv", CreationCollisionOption.ReplaceExisting); 
     using (var s = await file.OpenAsync(FileAccessMode.ReadWrite)) 
     { 
      Windows.Foundation.Size resolution = new Windows.Foundation.Size(640, 480); 
      avDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back, 
       AudioVideoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back).Last()); 

      VideoBrush videoRecorderBrush = new VideoBrush(); 
      videoRecorderBrush.SetSource(avDevice); 

      viewfinderRectangle.Fill = videoRecorderBrush; 

      await avDevice.StartRecordingToStreamAsync(s); 

      Thread.Sleep(30000); 

      await avDevice.StopRecordingAsync(); 
     } 


     new MediaPlayerLauncher() 
     { 
      Media = new Uri(file.Path, UriKind.Relative), 
     }.Show(); 
+0

'AudioVideoCaptureDevice.GetAvailableCaptureResolutions (센서)'하지 내가 192x144) – CAMOBAP

+0

가 편집을 참조해야하고, SetCaptureResolutionAsync –

+0

이미 사용을 사용하여 보면 예를 들어 (원하는 해상도하지 포함되어있어 'GetAvailableCa ptureResolutions (CameraSensorLocation.Back) .Last()'그리고 그것은 640x480을 반환하지만'192x144'가 필요합니다. – CAMOBAP