FFmpeg 最小化内存使用或向 youtube-dl 添加超时

FFmpeg Minimize memory usage or add timeout to youtube-dl

所以我正在使用 FFmpeg 下载 m3u8 流。为了优化,我直接尝试 运行 FFmpeg,而不是使用 youtube-dl。但出于某种原因,ffmpeg.exe 使用 140 MB 内存,而通过 youtube-dl ffmpeg.exe 仅使用 14 MB 内存。

所以我有两个问题:

直接FFmpeg(内存140MB):

import os
os.system('cmd /k "ffmpeg -i https://36-d4.divas.cloud/CHAN-3792/CHAN-3792_1.stream/playlist.m3u8 -t 100 output.mp4"')

FFmpeg 使用 youtube-dl(内存 14MB):

import youtube_dl

ydl_opts = {
    'nopart': True,
    'outtmpl': 'output.mp4',
    'nocheckcertificate': True
}

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['https://36-d4.divas.cloud/CHAN-3792/CHAN-3792_1.stream/playlist.m3u8'])

编辑: 我仔细检查了一下,direct 和 youtube-dl 的 exe FFmpeg 都是相同的版本。

linux 上的 youtube-dl 与您提供的 link 似乎启动了带有以下参数的 ffmpeg:

ffmpeg -y -loglevel verbose -headers 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.67 Safari/537.36\
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\
Accept-Encoding: gzip, deflate\
Accept-Language: en-us,en;q=0.5' \
 -i https://36-d4.divas.cloud/CHAN-3792/CHAN-3792_1.stream/chunklist_w70914220.m3u8 -c copy -f mp4 file:playlist-playlist.mp4.part

我想如果你只是重新使用它们并添加你的 (-t 100) 你应该能够获得相同类型的内存使用。

您也可以尝试只使用 -c copy-f mp4,我想这与 ffmpeg 的内存使用最相关。