我有一个视频文件。我用 MediaInfo 实用程序打开它,我可以在这个文件中看到一个视频流,其属性为 Rotation 90(以及其他属性,如 CodecID、比特率等)。
现在我有另一个没有Rotation 90 属性的视频文件,它根本没有Rotation 属性。
我可以使用 ffmpeg.exe 来生成添加了 Rotation 90 属性且没有其他更改的输出文件吗?我真的不想做任何变换,只想设置 Rotation 属性。
我试过这个-metadata
选项无济于事。
我有一个视频文件。我用 MediaInfo 实用程序打开它,我可以在这个文件中看到一个视频流,其属性为 Rotation 90(以及其他属性,如 CodecID、比特率等)。
现在我有另一个没有Rotation 90 属性的视频文件,它根本没有Rotation 属性。
我可以使用 ffmpeg.exe 来生成添加了 Rotation 90 属性且没有其他更改的输出文件吗?我真的不想做任何变换,只想设置 Rotation 属性。
我试过这个-metadata
选项无济于事。
这适用于最近的 FFmpeg:
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
这将流式复制比特流,因此不执行编码。此处仅更改了第一个视频流 ( v:0
) 的元数据,播放器将以旋转方式显示视频。(并非所有玩家都会支持这一点。)
补充笔记:
如果要“物理”旋转视频,则必须使用transpose
filter。过滤将需要重新编码,因此您必须删除-c copy
.
如果您省略-c copy
,并且想要编码而不是仅重新混合,那么ffmpeg
如果存在任何现有的旋转元数据,则将自动旋转视频。您可以使用 禁用此行为-noautorotate
。