2017-01-25 18 views
4

Я думаю, что я понял вопрос, с которым столкнулся мой вопрос here. Когда я скачал 360 видео они выглядят как обычный видео файл, например так:Как получить видео с 360 VR в правильном формате для Android VR View

Normal Video

Но для VR View, чтобы работать должным образом, нуждается в видео, чтобы разделить так:

VR Video

Есть ли способ конвертировать загруженные 360 видео в формат VR (двойной экран) или я могу программным образом настроить приложение для приема файла 360 mp4 и отображения без чрезмерного увеличения или уменьшения в определенных областях видео?

Извлечение из моего файла XML:

<com.google.vr.sdk.widgets.video.VrVideoView 
    android:id="@id/video_view" 
    android:layout_width="match_parent" 
    android:layout_height="250dip" 
    android:scrollbars="null" /> 

ответ

5

Я скачал видео, которое вы связаны с и был в состоянии получить его, чтобы играть правильно, используя VrVideoView в регулярных и выпученными режимах. Видео, на которое вы ссылаетесь, не является стереоскопическим видео, но является моноскопическим видео.

Для ясности этого ответа я кратко объясню два типа видеороликов VR, поддерживаемых VR SDK Google: Моноскопическое и стереоскопическое видео. С моноскопическим видео было снято только с одной камерой и, если смотреть в обычном проигрывателе, оно выглядит как верхнее изображение в вашем вопросе со всеми искажениями. С помощью стереоскопического изображения видео было снято с использованием двух камер и в зависимости от стереоскопического формата (есть верхний/нижний и левый/правый), он будет выглядеть как нижнее изображение в вашем вопросе при просмотре с обычным игроком, а также будет искажен. Google VR-плеер поддерживает только верхнюю/нижнюю версию стереоскопического формата.

Если видео вы пытаетесь воспроизвести это моноскопическое 360 видео (как в случае со связанным видео), то вы можете играть с помощью VR SDK следующим образом:

VrVideoView vrVideoView; 

// initialize the view here 

Options options = new Options(); 

// This tells the player that the video is a monoscopic 360 video 
options.inputType = Options.TYPE_MONO; 

// This tells the player that it should play using HLS or progressive video play 
// If you are linking to a single video file, use default. 
options.inputFormat = Options.FORMAT_DEFAULT; 

// Assuming you've downloaded the video... 
vrVideoView.loadVideoFromAssets("my-video.mp4", options); 
vrVideoView.playVideo(); 

Теперь если вы играет стереоскопический верх/низ формат 360 видео, то вы можете так же играть, просто изменяя тип входного видео:

VrVideoView vrVideoView; 

// initialize the view here 

Options options = new Options(); 

// This tells the player that the video is a stereoscopic top/bottom 360 video 
options.inputType = Options.TYPE_STEREO_OVER_UNDER; 

// This tells the player that it should play using HLS or progressive video play 
// If you are linking to a single video file, use default. 
options.inputFormat = Options.FORMAT_DEFAULT; 

// Assuming you've downloaded the video... 
vrVideoView.loadVideoFromAssets("my-video.mp4", options); 
vrVideoView.playVideo(); 

Теперь, вы, вероятно, хотите, чтобы играть это видео, используя очки. В этом случае вы можете просто установить режим отображения проигрывателя VR. Встроенный режим - это обычный маленький проигрыватель, который вписывается в ваш пользовательский интерфейс и действует как небольшой одноглазый видовой экран на 360-е видео, с исправлениями искажений. Полноэкранный моноскопический режим похож на встроенный в тот, который является одной и той же одноглазый перспективой, но вместо этого весь экран устройства используется как окно просмотра. Опция полноэкранного стерео разбивает видео на два изображения, по одному для каждого глаза, и будет отображаться с помощью очков VR. Смотрите ниже код, чтобы сделать это (примечание: этот код может быть вызван в любое время после того, как VrVideoView построен, и он будет регулировать соответственно):

// This displays the video as inside the normal bounds for viewing without the VR goggles. 
vrVideoView.setDisplayMode(DisplayMode.EMBEDDED); 

// If you want to go full-screen without goggles... 
vrVideoView.setDisplayMode(DisplayMode.FULLSCREEN_MONO); 

// If you want to go full-screen and use goggles... 
vrVideoView.setDisplayMode(DisplayMode.FULLSCREEN_STEREO); 

Там может быть некоторая путаница, окружающая именование Options и DisplayMode , Options просто используются игроком, чтобы определить, имеет ли исходное видео одну перспективу или две. DisplayMode используется игроком для определения способа отображения этого видео. У вас может быть моноскопически снятое видео, которое отображается стереоскопически, так как каждый глаз видит одну и ту же точку зрения.Аналогично, вы можете иметь стереоскопически снятое видео, отображаемое моноскопически, просто в окне просмотра будет отображаться только один глаз, а другая перспектива будет проигнорирована.

Я надеюсь, что это прояснит ситуацию. Сообщите мне, есть ли у вас проблемы с воспроизведением видео.

+1

Вы видели Бога? У меня есть. Он идет по имени anthonycr в stackoverflow. Большое спасибо за вашу помощь здесь. В результате возникли проблемы с установкой типа ввода на «MONO». Я пытался смотреть моноскопическое видео с типом ввода «STEREO_OVER_UNDER». Очень цените ваше объяснение! – Anish

+0

Добро пожаловать! Тип ввода был проблематичным для меня, поэтому я рад, что смог помочь кому-то понять его. – anthonycr

 Смежные вопросы

  • Нет связанных вопросов^_^