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

时间:2013-03-11 09:30:13

标签: ffmpeg video-conversion

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

现在我有另一个没有该属性Rotation 90的视频文件,它根本没有Rotation属性。

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

我试过-metadata选项无济于事。

1 个答案:

答案 0 :(得分:68)

这适用于最近的FFmpeg:

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

这将stream copy比特流,因此不执行编码。此处仅更改第一个视频流(v:0)的元数据,播放器将以旋转方式显示视频。 (并非所有玩家都支持此。)

附加说明:

  • 如果您想“物理”旋转视频,则必须use the transpose filter。过滤需要重新编码,因此您必须删除-c copy

  • 如果您省略-c copy,并且想要编码而不是仅重新复用,那么ffmpeg会自动旋转视频(如果有任何现有的旋转元数据)。您可以使用-noautorotate停用此行为。