2013-06-18 47 views
8

Tôi đang cố gắng quay video MP4 ở độ phân giải cụ thể trong Windows Phone 8 (cụ thể là 480x480). Tôi biết rằng tôi không thể sử dụng kích thước khác với cài đặt trước và 480x480 không phải là giá trị đặt trước. Làm cách nào để chuyển đổi video đã quay (chẳng hạn như 640x480) và cắt phần trên cùng và dưới cùng để tạo video 480x480? Bất kỳ thư viện nguồn mở hoặc miễn phí nào (chạy trên Windows Phone) đều được chào đón. Vui lòng không trả lời bằng các câu trả lời như 'sử dụng máy chủ bên ngoài', tôi cần giải pháp trên thiết bị.Quay (hoặc chuyển đổi sau khi quay) video ở kích thước không chuẩn trong Windows Phone 8

Trả lời

1

Sử dụng Windows.Phone.Media.Capture API và các AudioVideoCaptureDevice lớp

tham số thứ hai cho AudioVideoCaptureDevice.OpenAsync - xem this link - là độ phân giải. Và bạn có thể nhận được các nghị quyết sử dụng AudioVideoCaptureDevice.GetAvailableCaptureResolutions (sensor)

EDIT: Để thiết lập độ phân giải tùy chỉnh thử AudioVideoCaptureDevice.SetCaptureResolutionAsync

EDIT 2: Bạn có thể thử một cái gì đó như sau để chuyển đổi ghi video: (không thể tìm thấy ở đâu tôi đã nhận mã từ soz với tác giả!)

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 (sensor) 'không không chứa độ phân giải mong muốn (Ví dụ: tôi cần 192x144) – CAMOBAP

+0

Xem chỉnh sửa, và nhìn vào sử dụng SetCaptureResolutionAsync –

+0

tôi đã sử dụng 'GetAvailableCa ptureResolutions (CameraSensorLocation.Back) .Last() 'và nó trả về 640x480 nhưng tôi cần' 192x144' – CAMOBAP

Các vấn đề liên quan