Веб-воспроизведение видео с iOS с флагом ориентации - PullRequest
0 голосов
/ 06 февраля 2012

Недавно мы создали приложение для iPhone для одной из наших систем, которое позволяет пользователям загружать изображения и видео в наши службы. Последний главный недостаток, с которым мы сталкиваемся, - как обрабатывать видео, которые загружены в ориентации, отличной от горизонтальной справа. Очевидно, что если ваша система воспроизведения не учитывает флаг ориентации, отправленный с видео, то он будет воспроизводиться вверх ногами или вбок.

Правильный подход выглядит так: - система воспроизведения должна учитывать флаг ориентации непосредственно перед воспроизведением. Именно так Apple обращается с ним как непосредственно на устройстве, так и с помощью Quicktime.

Так что моя первая надежда на то, что кто-то знает о веб-проигрывателе (HTML5 или Flash), который способен вращать видео во время воспроизведения на основе либо метаданных ориентации видео, либо на основе пропущенного флага (у нас уже есть необходимые флаг доступен в БД, если нам нужно просто передать его вручную). Если вы знаете любого такого игрока, тогда ПОЖАЛУЙСТА, ПОДЕЛИТЕСЬ!

Если вы не знаете о таком плеере, то кому-нибудь повезло, крутя свои видео с помощью FFMPEG или MEncoder? На прошлой неделе мы провели несколько часов тестирования и не смогли получить достойных результатов от двух упомянутых там сильных нападающих.

В противном случае, возможно ли, чтобы iPhone загружал видео или изображение в указанном направлении?

Любой из трех будет работать для меня, но я бы предпочел сделать все, что стандартно (если таковой существует).

Любая помощь очень ценится!

1 Ответ

1 голос
/ 03 марта 2012
Maybe I am missing what you asking but if you are using ffmpeg on the iPhone or android which uses opengl couldn't you read the metadata in the stream and adjust the orientation accordingly with glrotate, we had a similar issue on the ipad/iphone when someone changes the orientation. We watch for the orientation change notification and rotate the display.


    #ifdef LANDSCAPE 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 
    #ifdef __IPAD__ 
    printf("got to ipad"); 

    glViewport(0, 0, 768, 1024); 
    if (isFlipped()) 
    glRotatef(90, 0, 0, 1); 
    else 
    glRotatef(-90, 0, 0, 1); 
    glOrthof(0.0, (GLfloat) 1024, (GLfloat) 768, 0.0, 0, 100.0f); 
    #else 
    glViewport(0, 0, 320, 480); 
    if (isFlipped()) 
    glRotatef(90, 0, 0, 1); 
    else 
    glRotatef(-90, 0, 0, 1); 
    glOrthof(0.0, (GLfloat) 480, (GLfloat) 320, 0.0, 0, 100.0f); 
    #endif  
    #else 
    data->glMatrixMode(GL_PROJECTION); 
    data->glLoadIdentity(); 
    data->glMatrixMode(GL_MODELVIEW); 
    data->glLoadIdentity(); 
    data->glViewport(0, 0, window->w, window->h); 
    data->glOrthof(0.0, (GLfloat) window->w, (GLfloat) window->h, 0.0, 
    0, 1.0); 
    #endif 
    data->updateSize = SDL_FALSE; 
    } 

    You can also check out or iOS video player project for ways to extract metadata from the video stream.

    www.mooncatventures.org/mediawiki

    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...