【问题标题】:FFmpeg add rotation to a video generated from an imageFFmpeg 为从图像生成的视频添加旋转
【发布时间】:2021-12-01 14:53:12
【问题描述】:

我是 FFmpeg 的新手,我不知道如何将 rotate="90" 添加到我的命令中。我尝试在不同的地方添加它,我得到了Unable to find suitable output format for 'rotate=90' rotate=90: Invalid argument

我想将介绍视频附加到使用 android 相机拍摄的一系列其他视频中,并将它们连接在一起。串联工作正常,除了旋转应该是纵向模式而不是横向模式。

这是我的命令:

const ffmpegCommand = `-hide_banner -loglevel error -loop 1 -i ${imageUri} -f lavfi -i anullsrc=cl=mono:r=48000 -c:v libx264 -profile:v high -level:v 4.0 -video_track_timescale 90k -t ${duration} -pix_fmt yuv420p -r ${resolution[0]/resolution[1]} ${outputUri}`;

  

【问题讨论】:

  • 您的问题是拍摄纵向视频并将其显示在横向屏幕上对吧..?
  • @BADSHAH 不,我想避免重新编码。我只想在这个命令中添加旋转属性。我使用 android 相机拍摄的视频处于纵向模式,而 FFmpeg concat 使它们成为横向,因为我生成的介绍视频是阵列中的第一个视频,并且是横向的。我只是想让这个让它成为肖像,这样 FFmpeg 的 concat 函数就不会旋转其余的视频。
  • 正是我正在检查视频旋转是否为 90 度,使用此命令视频度数变化 ffmpeg -y, -i, videoPath, -s, width x height, -preset, veryfast, OutputPath ; 这个输出路径之后会添加你的 ArrayList 然后主命令问题就解决了。

标签: ffmpeg android-ffmpeg


【解决方案1】:

找到了解决办法。我不确定它是否是正确的解决方案,但对我来说它可以满足我的需要。

const ffmpegCommand = `-i ${firstRecordedVideURL} -i ${generatedImageVideoURL} -map 1 -c copy \ -map_metadata 0 \ -map_metadata:s:v 0:s:v \ -map_metadata:s:a 0:s:a \ ${output}`;

我通过 android 相机拍摄了第一个视频,并将元数据复制到我刚刚从图像文件生成的视频中。这样,生成的视频将具有匹配的元数据,并且连接将按预期工作。

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多