2012-02-06 11 views
0

我们刚刚为我们的一个系统创建了一个iPhone应用程序,允许用户将图片和视频内容上传到我们的服务中。我们遇到的最后一个主要问题是如何处理以横向右侧以外的方向上传的视频。显然,如果您的播放系统没有考虑与视频一起发送的方向标志,那么它将会颠倒或横向播放。基于Web的方向标记iOS视频回放

正确的方法出现是因为回放系统应该在回放之前考虑方向标志。这就是Apple直接在设备上以及通过Quicktime处理它的方式。

因此,我的第一个希望是有人知道基于网络(HTML5或Flash)的播放器能够在播放期间根据视频方向元数据或基于通过的标志旋​​转视频(我们已经拥有如果我们需要手动传递它,必要的标志在数据库中可用)。如果你知道任何这样的球员,然后请分享!

如果你不知道这样的球员,那么有没有人有幸使用FFMPEG或MEncoder旋转他们的视频?我们上周进行了几个小时的测试,并没有能够从那里提到的两名重击手得到任何体面的结果。

失败所有这一切,有可能让iPhone在指定的方向上传视频或图像?

这三者中的任何一个都适合我,但我宁愿做任何标准的事情(如果存在的话)。

任何帮助非常感谢!

回答

1
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 

+0

感谢中号大炮!我们最终通过在我们的服务器上手动编译FFMPEG并启用vfilter选项来解决此问题。 RedHat当前版本的FFMPEG很旧,没有vfilter选项。您的答案可能很好,可以将流程卸载到手机端,并确保视频保持在我们尚未考虑的正确方向。我很感激! – Shane 2012-03-05 20:06:28