WMP 或 VLC 是否有选择是否遵守旋转元数据的选项?
例如,这是一个视频http://ge.tt/78hJIb63 4秒,10MB
我把手机直立着录了下来。我录制的是靠在沙发边上的无线电话听筒。
C:\Users\User\Downloads>mediainfo VID_20200822_172736580.mp4
General
Complete name : VID_20200822_172736580.mp4
Format : MPEG-4
.....
Rotation : 90°
...
C:\BLAH>
(该视频上的 ffmpeg -i 也显示其中有旋转元数据)
(mediainfo 显示的旋转元数据是向视频播放器发出的指令或建议,要求其顺时针旋转 90 度。手机记录了它,因此需要顺时针旋转 90 度才能显示正确/直立!)(所以我的手机用错误的旋转对其进行编码并使用旋转元数据进行调整!)
有些视频播放器会忽略旋转元数据,而有些则会注意它。
以下是在 Windows Media Player 2009 / Windows 7 中的 Windows Media Player 中的播放方式。
以下是它在 VLC 中的播放方式
如果我删除旋转元数据,它在两种情况下的播放情况如下。
ffmpeg -i VID_20200822_172736580.mp4 -metadata:s:v rotate="0" -c copy video_with_rotational_metadata_removed.mp4
在 win7 上的 Windows Media Player 2009 / WMP 中
在 VLC 中
因此显然,对于 Win7 上的 WMP 2009 / WMP 来说,没有区别,所以 WMP-2009-win7 忽略了旋转元数据。
VLC 则有所不同,因此 VLC 遵循旋转元数据。
注意 - Win10 上的 WMP 2013 / WMP 遵循旋转元数据。
在 WMP 或 VLC 或其他视频播放器中,是否有任何方法可以选择是否遵循旋转元数据?VLC 确实具有转换功能,但这不是我想要的。
答案1
VLC 或 WMP 不能。
(我看到您使用 ffmpeg 删除了旋转元数据,这很好,而且巧合的是,ffplay 还可以选择是否遵循旋转元数据,使用 -noautorotate 和 -autorotate 选项,它们不带任何参数,用于决定是否遵循旋转元数据)。因此,例如ffplay blah.mp4 -noautorotate
或ffplay blah.mp4 -autorotate
(默认)