2023-02-19请用go语言调用ffmepg,输出视频文件信息。
2023-02-19:请用go语言调用ffmepg,输出视频文件信息。
答案2023-02-19:
用 github.com/moonfdd/ffmpeg-go 这个库。
代码参考ffmpeg5入门教程的第四个例子输出视频信息,用golang改写的
用如下命令便可查看运行结果。
go run ./examples/a04get_stream_info/main.go
代码用golang编写。代码如下:
package main
import (
"fmt"
"os"
"os/exec"
"github.com/moonfdd/ffmpeg-go/ffcommon"
"github.com/moonfdd/ffmpeg-go/libavformat"
)
func main() {
os.Setenv("Path", os.Getenv("Path") ";./lib")
ffcommon.SetAvformatPath("./lib/avformat-58.dll")
fmt_ctx := libavformat.AvformatAllocContext() //创建对象并初始化
ret := int32(0)
fileName := "./resources/big_buck_bunny.mp4" //文件地址
for {
//打开文件
ret = libavformat.AvformatOpenInput(&fmt_ctx, fileName, nil, nil)
if ret < 0 {
fmt.Printf("Cannot open video file\n")
break //Cannot open video file
}
//查找流信息(音频流和视频流)
ret = fmt_ctx.AvformatFindStreamInfo(nil)
if ret < 0 {
fmt.Printf("Cannot find stream information\n")
break
}
fmt_ctx.AvDumpFormat(0, fileName, 0) //输出视频信息
break
}
libavformat.AvformatCloseInput(&fmt_ctx) //关闭文件
fmt.Println("---------------------------------")
cmd := exec.Command("./lib/ffprobe", fileName)
data, err2 := cmd.CombinedOutput()
if err2 != nil {
fmt.Println("ffprobe err = ", err2)
return
}
fmt.Println(string(data))
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhighbbf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22