zuiluo
V2EX  ›  问与答

请教图片生成视频的解决方案

  •  
  •   zuiluo · Jan 1, 2020 · 2323 views
    This topic created in 2403 days ago, the information mentioned may be changed or developed.
    有十张原始图片,将这十张图片转成视频,视频有动画效果(轮播图片,每张图片进行逐渐放大效果的动画)。

    这种视频生成有啥好的解决方法么(在客户端执行)

    我最开始用 js 写,canvas 逐帧生成,保存成 webp,最终合成一个 webm。
    后面用 C++重写,freeImg 打开图片,逐张然后进行逐帧编辑放大,再用 FFMPEG 合成 MP4 导出。

    这两个方案的实现时间都很慢(核心思路就是将 1 张图片通过编辑的方法,生成了一百多张图片,然后再逐帧插入…………),生成一个一分钟的视频,都要耗时好几分钟……

    有其他啥好的方案实现么?或者是我 C++写法思路不对(我是 C++菜鸟,前端开发一枚)


    在这个问题上已经浪费了很多天了……有点晕,或者第三方这类方案的 API 服务提供商推荐?

    提前谢谢大佬的回复,不胜感激!
    6 replies    2020-01-02 09:37:48 +08:00
    ByteRan
        1
    ByteRan  
       Jan 1, 2020
    FFmpeg
    zuiluo
        2
    zuiluo  
    OP
       Jan 1, 2020
    @tanranran 打字快了,错字
    birdrally
        3
    birdrally  
       Jan 1, 2020 via iPhone
    咋一看,需求不就是父母朋友圈到处转发的各种音乐相册嘛
    lecion
        4
    lecion  
       Jan 2, 2020 via Android
    webgl
    zuiluo
        5
    zuiluo  
    OP
       Jan 2, 2020
    我目前的打算是使用 OPENGL 去执行渲染,而不是使用 freeImage 去逐帧裁剪图片,这样速度应该会提升很多
    zuiluo
        6
    zuiluo  
    OP
       Jan 2, 2020
    昨天发现一个神奇的事情,我原始图片 总共 3M,生成出来的帧数据总共有一百多 M,最终出来的视频却只有 3M 多(因为里面只是不同的图片一直在放大然后切换到下一张继续放大),说明视频直接帮我进行了关键帧压缩,想找一种方式,直接通过设置关键帧的方式写入,但是没找到。。。。感觉应该是可行的,有懂的大佬能否告诉我一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2509 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:26 · PVG 08:26 · LAX 17:26 · JFK 20:26
    ♥ Do have faith in what you're doing.