托马斯的冰淇淋 2023-08-12 12:07 采纳率: 50%
浏览 22
已结题

ffmpeg实现长图向上滚动

怎么实现长图向上滚动,ffmpeg命令就可以,向上滚动的然后要贴两张小图在指定位置,这个图不会跟随滚动
下面是我的代码:输出报错视频不可播放

package main

import (
    "fmt"
    "os"
    "os/exec"
)

func main() {
    inputImage := "1.png"       // 输入的长图文件名
    outputVideo := "output.mp4" // 输出的视频文件名
    scrollSpeed := 50           // 滚动速度(像素/秒)
    pauseDuration := 2          // 停顿时长(秒)
    videoWidth := 1920          // 视频宽度
    videoHeight := 1080         // 视频高度
    frameRate := 30             // 帧率

    // 使用FFmpeg生成视频
    cmd := exec.Command("ffmpeg",
        "-loop", "1",
        "-i", inputImage,
        "-vf", fmt.Sprintf("crop=iw:ih-((t-%d)*%d):0:((t-%d)*%d),setpts=PTS+2/TB", pauseDuration, scrollSpeed, pauseDuration, scrollSpeed),
        "-t", fmt.Sprintf("%d", pauseDuration+int(videoHeight/scrollSpeed)),
        "-r", fmt.Sprintf("%d", frameRate),
        "-s", fmt.Sprintf("%dx%d", videoWidth, videoHeight),
        "-c:v", "libx264",
        "-preset", "medium",
        "-crf", "23",
        outputVideo,
    )

    // 执行FFmpeg命令
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr
    if err := cmd.Run(); err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Println("Video generated successfully:", outputVideo)
}
  • 写回答

5条回答 默认 最新

  • threenewbee 2023-08-12 12:12
    关注

    你可以不断滚动+截图,得到一系列关键帧
    然后用ffmpeg连起来得到视频,或者是直接录屏

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月13日
  • 赞助了问题酬金15元 8月13日
  • 修改了问题 8月13日
  • 修改了问题 8月13日
  • 展开全部

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题