【发布时间】:2017-07-13 19:39:43
【问题描述】:
我遇到了一个问题,过去几天我一直在尝试解决有关 Android 上 MP4 文件轮换的问题。我目前正在开发将 MP4 文件作为字节流从安卓设备发送到另一台设备上播放的应用程序。
我遇到的问题是,在 android 设备上以纵向模式录制的视频在接收流的播放器上旋转 90 度显示。
我尝试使用 MP4Parser 从原始 MP4 创建一个新的 MP4,并更改了旋转。我还尝试通过创建新的 MP4 更改媒体格式中的 key-rotation 来更改旋转,并且还尝试在创建新的 Muxer 时更改 orientation hint。
所有这些方法都有效,但似乎只是改变了轮换元数据。在某些播放器中,正在读取此元数据并正在应用轮换。但是,用于我们应用程序的目标播放器中使用的播放器无法读取此元数据。
我唯一的解决方案是创建一个临时 MP4,它已旋转视频数据,然后将其发送出去。我找到了在 MP4 中旋转单个 YUV image frames 的资源,但我的问题是如何从输入的 MP4 中检索这些帧并将修改后的帧写入新文件?
注意:我正在使用 Xamarin 构建应用程序,并尝试使用 FFMPEG,但添加二进制文件会使项目太大,我也担心许可。
【问题讨论】:
标签: android rotation mp4 video-processing android-mediacodec