我可以用FFmpeg为视频流设置旋转字段吗



我有一个视频文件。我用MediaInfo实用程序打开它,可以在这个文件中看到一个具有属性Rotation 90的视频流(以及其他属性,如CodecID、比特率等(。

现在我有另一个视频文件,它没有"旋转90"属性,它根本没有"旋转"属性。

我可以使用ffmpeg.exe来生成添加了Rotation 90属性且没有其他更改的输出文件吗?我真的不想做任何变换,只想设置"旋转"属性。

我尝试了-metadata选项,但没有成功。

这适用于最近的FFmpeg:

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4

这将对比特流进行流复制,因此不执行任何编码。这里仅改变第一视频流(v:0(的元数据,并且播放器将以旋转的方式显示视频。(并非所有玩家都会支持这一点。(

附加说明:

  • 如果你想"物理"旋转视频,你必须使用transpose过滤器。筛选将需要重新编码,因此您必须删除-c copy

  • 如果省略-c copy,并且希望编码而不是仅重新复用,则如果存在任何现有的旋转元数据,ffmpeg将自动旋转视频。您可以使用-noautorotate禁用此行为。

最新更新