【问题标题】:generate video containing scrolling image生成包含滚动图像的视频
【发布时间】:2020-05-07 21:06:18
【问题描述】:

我想从 800x10000 的静止图像生成视频 [比如说 800x600]。

图像必须从上到下滚动,就像有人在滚动页面一样。

如果它可以在某些部分上滚动得更快而在其他部分上滚动得更慢,那就太好了,否则我想我可以制作几个单独的视频,然后将它们拼接起来。

我找不到有关此主题的任何文档;谁能给我一个提示?感谢您的宝贵时间!

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    使用scroll 过滤器。 crop 过滤器是可选的,将为大图像输入输出合理的宽度和高度。您也可以考虑使用scale 过滤器。 format 过滤器输出广泛兼容的像素格式/色度二次采样方案。

    垂直

    ffmpeg -loop 1 -i input.png -vf "scroll=vertical=0.01,crop=iw:600:0:0,format=yuv420p" -t 10 output.mp4
    

    水平的

    ffmpeg -loop 1 -i input.png -vf "scroll=horizontal=0.01,crop=800:600:0:0,format=yuv420p" -t 10 output.mp4
    

    滚动过滤器选项

    • horizontal, h设置水平滚动速度。默认值为 0。允许范围为 -1 到 1。负值更改滚动方向。

    • vertical, v设置垂直滚动速度。默认值为 0。允许范围为 -1 到 1。负值更改滚动方向。

    • hpos设置初始水平滚动位置。默认值为 0。允许的范围是 0 到 1。

    • vpos设置初始垂直滚动位置。默认值为 0。允许的范围是 0 到 1。

    【讨论】:

    • 您能否指出如何添加音频源?我尝试了这方面的变化,但没有一个有效ffmpeg -f lavfi -i color=s=851x600:d=20 -loop 1 -i 1.jpg -i 2.mp3 -filter_complex "[1:v]scale=851:8680[fg]; [0:v][fg]overlay=y=-'t*h*0.05':shortest=1[v]" -map "[v]" -map 1:0 /3.mp4
    • @SorinButurugeanu 更新示例以包含音频。如果它不起作用,您可以提供您的命令和完整的控制台输出。
    • 另一个小问题:如何获取当前剪辑时长?我必须在 filter_complex - 60 的公式中再次手动输入。剪辑长度是否没有变量,就像宽度和高度一样? [main_w / main_h]? ffmpeg -f lavfi -i color=s=750x360:d=60:r=30 -loop 1 -i /4339550983562.jpg -i /2.mp3 -i /copy.png -filter_complex "[1:v]scale=750:-1[fg]; [0:v][fg]overlay=y='min(-h+main_h+(h-main_h)*t/60, 0)':shortest=1[gg]; [gg][3:v]overlay=10:main_h-h-10[gh]" -shortest -map "[gh]" -map 2:a /xx.mp4
    • 为什么scroll=horizontal=-0.01会改变方向,而scroll=horizontal=-1不会?
    • @PedroLobito 该版本不在 git 日志中。它来自叉子。您需要获得真正的 ffmpeg。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2023-04-07
    • 2015-04-27
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多