Как конвертировать скрипт из youtube-dl - PullRequest
0 голосов
/ 16 декабря 2018

Существует скрипт bash / batch file:

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 Мб?Что я делаю не так?

enter image description here enter image description here

Код

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

enter image description here

1 Ответ

0 голосов
/ 16 декабря 2018

Пожалуйста, обратите внимание внимание на некоторые пункты ниже:

  • Итак, если я действительно понимаю ваш вопрос, речь идет о пакетном файле / cmdв Windows вам потребуется указать путь к ffmpeg.exe в переменной, чтобы он мог быть доступен для youtube-dl найденного.
  • Или,в моем примере выше, в том же пути и в инструменте переменного аргумента, поэтому youtube-dl amd ffmepg.exe находятся в той же папке / path = .\\.
  • Ссылка в этом вопросе , офлайн , поэтому я изменил эту ссылку на другую онлайн : cmd output

Я сохраню этот код по имени 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_00=%1"
    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!

    exit /b
...