zoukankan      html  css  js  c++  java
  • 使用 golang 获取远程地址视频的时间

    package toolkit
    
    import (
        "context"
        "gopkg.in/vansante/go-ffprobe.v2"
        "time"
    )
    
    func GetMediaDurationByUrl(url string) float64 {
        ctx, cancelFn := context.WithTimeout(context.Background(), 20*time.Second)
        defer cancelFn()
    
        data, err := ffprobe.ProbeURL(ctx, url)
        if err != nil {
            tk.Error.Println("ErrorX GetMediaDurationByUrl: %v", err.Error())
            return 0
        }
    
        if data == nil {
            return 0
        }
    
        return data.Format.Duration().Seconds()
    }

    先贴脚本,给想直接拷贝的同学。

    目前来看我找了很多 golang 的库以及系统的库,Youtube-DL 有参数可以获取时间但是似乎必须得下载到本地。于是找了一下底层依赖的 ffmpeg 有一个 toolkit ffprobe可以做到这个事情。

    如果是直接使用 cmd 的话可以参考使用这个命令

    ffprobe -i `url` -show_entries format=duration -v quiet -of csv="p=0"

    可以直接获取到视频的时间。

  • 相关阅读:
    05-删除提示
    04-setTimeout
    03-页面加载事件
    02-对话框
    01-window
    18-选择水果
    17-元素操作的方法
    13-动态创建表格
    【数据库】SQL必知必会复习
    【数据库】JDBC课设(2)addbatch批处理SQL语句
  • 原文地址:https://www.cnblogs.com/piperck/p/14974043.html
Copyright © 2011-2022 走看看