怎么实现长图向上滚动,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)
}