我只想更改 .mp4 视频文件中的旋转标志。存在许多类似的问题,大多数答案建议使用
ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate=90 -codec copy output.mp4
Run Code Online (Sandbox Code Playgroud)
我对这些解决方案的问题是,即使它复制了大部分元数据,也会丢失一些部分,并且文件小 700kb。附件是来自 ffprobe 和 exifer 的元数据之前和之后。
另一个奇怪的发现是 ffmpeg rotate=90 命令进行 ccw 旋转,在 ffprobe 中元数据中为 (cw) 270°,但在 displaymatrix 侧数据中为 (ccw)90°。
= equal attributes
* altered attributes
- removed attributes
+ added attributes
Run Code Online (Sandbox Code Playgroud)
*Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\input.mp4':
= Metadata:
* major_brand : avc1
* minor_version : 0
* compatible_brands: avc1isom
= creation_time : 2016-10-29T12:10:41.000000Z
- firmware : HD3.11.03.03
* Duration: 00:00:06.01, start: 0.000000, bitrate: …
Run Code Online (Sandbox Code Playgroud) 有可能——事实上,很容易——在不重新编码的情况下旋转 JPEG 文件,这意味着在这个过程中不会引入额外的质量损失。
对于类似的有损视频格式(MPG、MP4),是否也有同样的可能?