首页 文章

旋转Android视频以在网络上显示

提问于
浏览
0

我正在 Build 一个网站 . 我正在尝试将第一个视频加载到它上面 . 此mp4视频处于纵向方向,并记录在Android设备上 .

当我将这个mp4加载到我的网站上时,它在Chrome上完美播放(纵向);然而,它在Firefox和IE上以横向方式播放 . 我意识到这是因为Chrome使用存储在mp4中的旋转元数据以正确的方向播放视频,而FF和IE不使用此元数据 .

我试图使用FFMPEG以及Transpose,Metadata和Rotate命令的各种组合来纠正这个问题 . 我正在使用MediaInfo来查看与我使用FFMPEG生成的文件相关联的元数据 .

我的问题是:1)如果我使用Transpose = 1,然后在FF&IE和Windows Media Player上,生成的视频实际上旋转了180度,元数据显示文件的宽度和深度与原始文件相同 . 2)如果我使用-metadata:s:v rotate = 0(我也尝试了rotate = 90),那么MediaInfo告诉我生成的文件宽度和深度现在是纵向,但FF&IE&WMP将不会播放结果文件 . WMP播放声音但没有图像,FF给出错误消息“加载此资源时出错” .

我需要使用什么ffmpeg命令将记录了Android设备的人像MP4转换为能在Firefox上以正确方向播放的mp4?

提前致谢

1 回答

  • 0

    如果您希望不遵循旋转元数据的浏览器或播放器使用正确的方向播放,则必须对其进行重新编码以“物理”旋转视频 .

    现代版的 ffmpeg 将根据旋转元数据自动旋转视频(并且将避免将输入旋转元数据复制到输出),因此只需运行:

    ffmpeg -i input.mp4 -c:a copy -movflags +faststart output.mp4
    

相关问题