最近想用 go 实现图片合成视频,无奈只合成了无音频的 avi 视频。用的 gocv (牛刀杀鸡),其实也就是 opencv 的 VideoWriter ,opencv 底层还是 ffmpeg 。 也可用 go 的 exec.Command ()执行 ffmpeg 命令实现五花八门的功能,但是使用命令行的方式使我内心“十分不安”。
想问一下 V 友有无最小的实现方案=>仅需实现几张尺寸类型不同的图片合成有简单过渡特效加背景音乐的 mp4 文件。
这里有个 MiniProgram 挺让我好奇他的实现方式,MP 搜“图片合成视频”,有很丰富的处理功能,还是个个人开发者(作者名字居然和我领导名字一样,天啊)
或者,提供一个不错的方案?
1
baiy 2022-01-19 14:55:05 +08:00
|
3
coderluan 2022-01-19 15:02:49 +08:00
实际上 ffmpeg 就是最佳方案,而且它是开源的,你不想单独起进程调用,那就编译个 ffmpeg ,设置你喜欢的参数,然后主函数里面调试下看看走的那些函数,然后把想要的部分封装成一个函数接口,整体编译成个 dll ,你那边想怎么调用都行。
|
4
ciddechan OP @coderluan 是的,耗时最少,可惜 cmake 老早忘光了。我以为会有一些纯 io 读写,解码编码的例子,结果搜到的少之又少
|
5
Juszoe 2022-01-19 15:43:08 +08:00
直接把 ffmpeg 一起编译进来就好了 https://github.com/giorgisio/goav
|
6
a1274598858 2022-01-19 16:00:39 +08:00
试试这个 ffmpeg 二进制运行文件 https://mvnrepository.com/artifact/ws.schild/jave-native-linux64/2.4.6
|
7
PatrickLe 2022-01-19 20:20:02 +08:00
这个工具应该可以满足你所有要求
http://cr-soft.net/crmvmixer.html |
8
ciddechan OP 最后用了 go 的 exec.Command 执行 node 编译 ffcreator 的 js 文件方案,很臃肿,然后我现在开始好奇抖音的视频编辑方案。。。是不是他们的团队实现了很多图片类型和视频的编解码(我猜是),他们是服务器处理视频,还是把二进制的文件放到手机上运行(我猜是)
|