怎么实现长图向上滚动,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)
}
你可以不断滚动+截图,得到一系列关键帧
然后用ffmpeg连起来得到视频,或者是直接录屏
ffmpeg是处理视频的吧,怎么可能让聊天记录上滚啊
不是自带了滚动特效吗
【以下回答由 GPT 生成】
我可以为你提供一个使用ffmpeg和golang的解决方案来实现聊天记录向上滚动的效果。
首先,你需要安装并配置好ffmpeg和golang的环境。
接下来,你可以使用golang的exec包来执行ffmpeg命令。下面是一个使用ffmpeg的示例代码:
package main
import (
"fmt"
"os"
"os/exec"
)
func main() {
text := `
1. 你在干嘛?我在吃饭。你吃饭了没?你在干嘛?我在吃饭。你吃了没?我没干嘛,我在吃饭,你在干嘛?我在吃饭,你吃了没。
`
cmd := exec.Command("ffmpeg",
"-f", "lavfi",
"-i", "color=c=black:s=640x480:r=25",
"-vf", "drawtext=fontsize=24:fontfile=/path/to/font.ttf:textfile=/path/to/text.txt:y=h-line_h-10*mod(t\\,180)/180",
"-t", "5",
"output.mp4")
// 将聊天记录文本保存到文件
file, err := os.Create("/path/to/text.txt")
if err != nil {
fmt.Println("Failed to create text file:", err)
return
}
defer file.Close()
file.WriteString(text)
// 执行ffmpeg命令
err = cmd.Run()
if err != nil {
fmt.Println("Failed to run ffmpeg:", err)
}
}
在上面的代码中,我们使用了ffmpeg的drawtext滤镜来实现文字的向上滚动效果。具体来说,我们使用了drawtext=fontsize=24:fontfile=/path/to/font.ttf:textfile=/path/to/text.txt:y=h-line_h-10*mod(t\,180)/180"
来设置滚动效果。其中,fontsize
表示字体大小,fontfile
表示字体文件路径,textfile
表示聊天记录文本文件的路径,y
表示文字的纵坐标位置,通过调整y
的表达式可以实现滚动效果。在上面的代码中,我们将聊天记录文本保存到了/path/to/text.txt
文件中,你需要将其替换成你自己的路径。
最后,执行上面的代码即可生成一个向上滚动的视频文件output.mp4
。
请注意,这只是一个简单的示例,你可以根据自己的需求调整ffmpeg的参数和golang代码来适应你的实际情况。如果你需要更多的功能,可以参考ffmpeg的官方文档来获取更多的滤镜和参数的使用方法。
希望这个解决方案可以帮助到你!如果你有其他问题,请随时提问。
【相关推荐】
原题,连你拿的截图都一样,里面的原理以及步骤很详细,按照做就行,文章如下:
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢