nilaoda / N_m3u8DL-CLI

[.NET] m3u8 downloader 开源的命令行m3u8/HLS/dash下载器,支持普通AES-128-CBC解密,多线程,自定义请求头等. 支持简体中文,繁体中文和英文. English Supported.
https://nilaoda.github.io/N_m3u8DL-CLI/
MIT License
14.25k stars 2.15k forks source link

go程序掉用 下载速度变慢 #742

Closed fc221 closed 1 year ago

fc221 commented 1 year ago

image 我用golang程序去掉用发现没有直接执行命令下载速度快 图1 直接掉用 image 图2 go程序掉用 image

nilaoda commented 1 year ago

我试着用exec.Command调用了一下 不会很慢

package main

import (
    "fmt"
    "os"
    "os/exec"
)

func main() {
    url := "http://xxx.m3u8"

    fmt.Println(url)

    commands := []string{url, "--minThreads", "8", "--stopSpeed", "500", "--enableDelAfterDone", "--disableDateInfo", "--noProxy"}
    cmd := exec.Command("N_m3u8DL-CLI_v3.0.2.exe", commands...)

    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

    err := cmd.Run()
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println("=====OK=====")
}
fc221 commented 1 year ago

感谢 查明原因了

nilaoda commented 1 year ago

感谢 查明原因了

什么原因?

fc221 commented 1 year ago

资源cdn的问题 我找了个 没有执行过的 发现直接掉用和 exec.Command 子进程执行速度是一样的 如果执行过一次的话 cdn上面有缓存了 第二次执行估计就命中缓存了 速度就变快了