【问题标题】:MLT, how to rotate a video 90 degrees and make the resulting height be the same as the original width?MLT,如何将视频旋转90度并使结果高度与原始宽度相同?
【发布时间】:2015-03-04 18:19:24
【问题描述】:

我用我的手机纵向(垂直)拍摄了一个视频,现在我需要对其进行编辑以使其适合横向(水平)布局。在我的电脑和任何 linux 上可用的视频编辑器中播放时,它看起来像这样。

所以我现在要做的,首先是把它旋转 90 度,让它看起来像这样。

基本上,我希望结果与原始视频的宽度一样高。或者,我希望它与原始视频的高度一样宽。

但是,我得到的是一个与原始视频具有相同尺寸的视频,没有旋转,因此被加了信箱(两侧有黑色条纹)并且上下部分被裁剪,如图所示.

据我了解,我应该和profiles 一起玩,但是无论我做什么,我似乎都无法做到这一点。

我可以使用信箱,但我不想裁剪视频,也不想缩小以使图像因失去垂直分辨率而适合。

任何帮助将不胜感激。

【问题讨论】:

    标签: video-processing mlt


    【解决方案1】:

    如果你不介意使用 ffmpeg,你可以这样做:

    ffplay input -vf 'rotate=angle=PI/2:out_w=ih:out_h=iw'
    

    将“ffplay”替换为“ffmpeg”以编码为输出文件。 将“PI/2”替换为“-PI/2”即可逆时针旋转。

    【讨论】:

    • 除了给你一个纵向视频,他的问题是“适合水平布局”。真正的问题是什么是“适当的”?他是想裁剪一些原始图像并填充更多宽度还是保留整个图像并进行填充?这对我来说仍然不清楚,但我指出的 Shotcut 过滤器(根据原始问题使用 MLT)提供了让人们选择做什么的控件(不包括扭曲方面以拉伸或非线性缩放)。跨度>
    • 我同意存在一些混淆。屏幕截图暗示他想要垂直方向。但有些话暗示了其他情况。
    • 可能是他/某人只是想在保持原始尺寸 (out_w=ih:out_h=iw) 的同时进行旋转,以便使用 MLT/Shotcut 准备/转换视频 - 用于其他工具或作为后期项目的预处理步骤。这绝对是 MLT 不足的用例。这并非完全不可能,但肯定不方便(自定义 mlt_profile 和由于仿射过滤器的工作方式而难以确定的缩放级别)。
    【解决方案2】:

    Shotcut,基于 MLT 的编辑器有一个带有平移和缩放控件的旋转过滤器,非常适合此目的。您不需要制作自定义 MLT 配置文件(Shotcut 中的设置 > 视频模式 > 自定义...),除非您确实想要纵向/高输出视频分辨率(您说过不想要)。

    【讨论】:

    • 我使用了旋转滤镜,但它产生了第三张图片所示的结果。然后我可以缩小,但这正是我不想要的,因为我会失去垂直分辨率。
    • 然后放大!您需要扩展超过 200% 吗?
    【解决方案3】:

    我知道这是一个老问题,但我想我会补充说......如果你打算使用 ffmpeg,那么也许以下的组合会带来(..我假设)想要的结果。

    ffmpeg -i video.mp4 -vf transpose=1 rotated.mp4
    

    将视频顺时针旋转 90 度,然后,

    ffmpeg -i rotated.mp4 -c:v h264 -s 1024x768 -aspect 16:9 output.mp4
    

    然后将其拉伸到原始尺寸,当然您可能需要根据您使用的文件类型和分辨率/纵横比调整上述内容。 结果可能看起来有点“被压扁”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多