// コマンドラインでffprobeを実行した場合
$ ffprobe src/video.mp4
ffprobe version 4.2.4-1ubuntu0.1 Copyright (c) 2007-2020 the FFmpeg developers
// 省略
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘src/video.mp4’:
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41isomavc1
creation_time : 2021-07-20T06:13:11.000000Z
Duration: 00:00:14.56, start: 0.000000, bitrate: 1530 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280×720, 1527 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
Metadata:
creation_time : 2021-07-20T06:13:11.000000Z
handler_name : L-SMASH Video Handler
encoder : AVC Coding
### goでffprobe
$ go get github.com/vansante/go-ffprobe
package main
import (
"log"
"time"
"context"
ffprobe "github.com/vansante/go-ffprobe"
)
func main() {
ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)
defer cancelFn()
data, err := ffprobe.ProbeURL(ctx, "src/video.mp4")
if err != nil {
log.Panicf("Error getting data: %v", data)
}
log.Print(data.Format.Duration())
}
$ go run test.go
2021/11/13 21:37:01 14.56s
mp4が作成された日時とdurationが表示される
OKKKKKKKKKKKKKKKKKKKK