2013-06-18 6 views
8

Próbuję przechwytywać wideo MP4 w określonej rozdzielczości w systemie Windows Phone 8 (konkretnie 480x480). Wiem, że nie mogę używać rozmiarów innych niż presety, a 480x480 nie jest ustawieniem wstępnym. Jak mogę przekształcić przechwycone wideo (na przykład 640x480) i przyciąć górny i dolny, aby uzyskać 480x480? Dowolne bezpłatne lub otwarte biblioteki źródłowe (uruchamiane w systemie Windows Phone) są mile widziane. Nie odpowiadaj odpowiedziami takimi jak "korzystaj z zewnętrznego serwera", potrzebuję rozwiązania na urządzenie.Nagrywanie (lub przekształcanie po nagraniu) wideo w niestandardowym rozmiarze w systemie Windows Phone 8

Odpowiedz

1

Użyj Windows.Phone.Media.Capture API i AudioVideoCaptureDevice klasa

Drugi parametr dla AudioVideoCaptureDevice.OpenAsync - patrz this link - jest rozdzielczość. I można dostać uchwał użyciu AudioVideoCaptureDevice.GetAvailableCaptureResolutions (czujnika)

EDIT: Aby ustawić niestandardowe rozdzielczości spróbować AudioVideoCaptureDevice.SetCaptureResolutionAsync

EDIT 2: Można spróbować czegoś jak następuje przekształcenie nagrań wideo (nie może dowiedzieć się, gdzie mam kod z SOZ autorowi!)

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 (czujnik)' nie nie zawiera żądaną rozdzielczość (na przykład muszę 192x144) – CAMOBAP

+0

Zobacz zmiany, i spojrzeć na użyciu SetCaptureResolutionAsync –

+0

używam już 'GetAvailableCa ptureResolutions (CameraSensorLocation.Back) .Last() 'i zwraca 640x480, ale potrzebuję' 192x144' – CAMOBAP

Powiązane problemy