【问题标题】:How to convert a script from youtube-dl如何从 youtube-dl 转换脚本
【发布时间】:2019-05-17 04:23:57
【问题描述】:

有一个bash/批处理文件脚本:

ffmpeg -i `youtube-dl https://www.twitch.tv/zero` -vf fps=fps=60, scale=1920x1080 -c:v libx264 -b:v 500k -preset superfast -c:a copy -f segment -segment_time 60 test.mp4

该脚本不是我的,但它允许您以恒定的帧速率录制视频。不幸的是,在 cmd 中它对我不起作用。都试过了,不知道是什么错误。

我收到No such file or directory

试过'youtube-dl https://www.twitch.tv/zero',同样的错误

我试过"youtube-dl https://www.twitch.tv/zero",错误:youtube-dl https://www.twitch.tv/zero: Invalid argument

我做错了什么?作者保证他在 linux 上工作

更新

我试过ffmpeg -i $ (youtube-dl -f best -g https://www.twitch.tv/zero) ....同样的错误

更新 2

为什么视频大小超过 500 Mb?我做错了什么?

代码

cls && @echo off & setlocal enableextensions enabledelayedexpansion 
set "_tag_00=https://www.twitch.tv/avagg"
set "_tag_01=--ignore-errors --abort-on-error --ignore-config --flat-playlist --geo-bypass "
set "_tag_02=--restrict-filenames --no-part --no-cache-dir --write-thumbnail --prefer-ffmpeg "
set "_tag_03=--ffmpeg-location .\ --postprocessor-args  -i "%%(title)s.%%(ext)s" -vf fps^=fps^=60^,"
set "_tag_04=scale^=1920x1080 -c:v libx264 -b:v 500k -preset superfast -c:a copy -f segment -segment_time "
set "_tag_05=60 %%^(title^)s.mp4"

youtube-dl "!_tag_00!" -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" -o "%%^(title^)s.%%^(ext^)s" !_tag_1!!_tag_2!!_tag_3!!_tag_4!!_tag_5!
Pause

更新 3

【问题讨论】:

  • youtube-dl 主要错误:没有这样的文件或目录
  • 你在解析参数时遇到问题

标签: cmd ffmpeg youtube-dl


【解决方案1】:

注意以下几点

  • 所以,如果我真的理解您的问题,并且它是关于 Windows 中的批处理文件/cmd,您需要ffmpeg.exe 的路径放在变量,因此youtube-dl 可以访问它。
  • 或者,在我上面的示例中,在相同的路径和可变参数工具中,因此,youtube-dl amd ffmepg.exe 位于相同的文件夹/路径 = .\\
  • question 中的链接是离线,因此我将此链接更改为另一个online

我会按名称保存此代码yt-DL.cmd

仅复制特定时间:仅编辑 _tag_1 值:-t 00:60:00

   cls && @echo off & setlocal enableextensions enabledelayedexpansion 

    :: do some with the bat file, after then,  for all links need `call :_yd_dl` %1

    call :_yd_dl %1
    echo/ is done^^!!

    goto :eof

    :_yd_dl

    set "_tag_00=%1"
    set "_tag_01= -t 00:60:00 -v error -stats -vf fps=fps=60,scale=1920x1080 -c:v libx264 -preset superfast -c:a copy "
    for /f %%i in ('.\youtube-dl.exe -g !_tag_00! ^<nul ') do .\ffmpeg.exe  -i "%%i" !_tag_01! .\output.mp4

    exit /b 

通过以下方式复制完整视频:

  cls && @echo off & setlocal enableextensions enabledelayedexpansion 

    :: do some with the bat file, after then,  for all links need `call :_yd_dl` %1

    call :_yd_dl %1
    echo/ is done^^!!

    goto :eof

    :_yd_dl

    set "_tag_0=%1"
    set "_tag_1=--ignore-errors --abort-on-error --ignore-config --flat-playlist --geo-bypass "
    set "_tag_2=--restrict-filenames --no-part --no-cache-dir --write-thumbnail --prefer-ffmpeg "
    set "_tag_3=--ffmpeg-location .\ --postprocessor-args  -i "%%(title)s.%%(ext)s" -vf fps^=fps^=60^,"
    set "_tag_4=scale^=1920x1080 -c:v libx264 -b:v 500k -preset superfast -c:a copy -f segment -segment_time "
    set "_tag_5=60 %%^(title^)s.mp4"

    youtube-dl "!_tag_0!" -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" -o "%%^(title^)s.%%^(ext^)s" !_tag_1!!_tag_2!!_tag_3!!_tag_4!!_tag_5!

    exit /b

【讨论】:

  • 我想在录制过程中挂载视频部分,但是在 intel i7 - 4700 2.4Ghz x 8 线程上有这么大的负载,你可以忘记编辑。使用 Selenium Webdriver(任何浏览器)+ Bandicam(已经有编码和分割)编写 python 脚本会更容易,并且负载会更少
  • 对不起,我没听懂你的意思。哪个列表?
  • 我什么都不懂。您想将循环传输到文本文档,以免给 CPU 带来检查负担?
  • 我建议关闭这个话题,因为它会妨碍我们理解彼此的语言障碍。
猜你喜欢
  • 2022-08-17
  • 1970-01-01
  • 2020-11-29
  • 2015-11-14
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
相关资源
最近更新 更多