Unbekannte Option '-get-url' Fehler beim Aufteilen der Argumentliste: Option nicht gefunden

Unbekannte Option '-get-url' Fehler beim Aufteilen der Argumentliste: Option nicht gefunden

Ich versuche, einen Clip aus einem YouTube-Video herunterzuladen und habe den Weg über Befehlszeilentools gewählt, nachdem ich herausgefunden habe, dass Websites für diese Aufgabe nicht geeignet sind.

Danke dafürAskUbuntu-Threadhabe ich den folgenden Befehl erhalten:

ffmpeg -i $(youtube-dl -f 22 --get-url https://www.youtube.com/watch?v=EkTHhk07nv4) -ss 00:05:12.70 -t 00:00:08.10 -c:v copy -c:a copy hamster.mp4

Wenn ich es jedoch mit ffmpegund youtube-dlim selben Verzeichnis ausführe und cmd im selben Verzeichnis ausführe, erhalte ich diese Ausgabe:

ffmpeg version git-2020-02-06-343ccfc Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.2.1 (GCC) 20200122
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 39.100 / 56. 39.100
  libavcodec     58. 68.100 / 58. 68.100
  libavformat    58. 38.100 / 58. 38.100
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 74.100 /  7. 74.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100

Gefolgt von diesem Fehler:

Unrecognized option '-get-url'.
Error splitting the argument list: Option not found

Ich konnte die Fehlermeldung nicht verstehen und auch die Suche nach dem Fehler hat mir keine Antworten gegeben. Was könnte mit dem Befehl nicht stimmen?

Antwort1

Ich konnte die Fehlermeldung nicht verstehen und auch die Suche nach dem Fehler hat mir keine Antworten gegeben. Was könnte mit dem Befehl nicht stimmen?

ffmpegversucht, die --get-urlfür vorgesehene Option zu analysieren youtube-dl.

Erläuterung

Der youtube-dlim ffmpegBefehl eingebettete Teil, z. B.:

$(youtube-dl -f 22 --get-url https://www.youtube.com/watch?v=EkTHhk07nv4)

ist gedacht, um:

  1. Führen Sie den youtube-dlBefehl aus (der eine für den Zugriff auf das YouTube-Video erforderliche URL zurückgibt).

  2. Ersetzen Sie die Ergebnisse (also die zurückgegebene Video-URL) an der angegebenen Stelle im ffmpegBefehl.

Ihr Problem scheint zu sein, dass die $()Syntax nicht verwendet wird, um die richtige URL abzurufen/zu ersetzen. Dasselbe ffmpeggilt für das Lesen des Rohbefehls youtube-dlund den Versuch, Optionen zu analysieren youtube-dl, die nicht dafür vorgesehen waren.

Eine mögliche Lösung

Sie müssen sich darüber im Klaren sein, dass dies $()nicht Teil von ist ffmpeg. Das heißt, ffmpeges ist nicht das, was ausgeführt wird youtube-dloder die Ergebnisse ersetzt.

Bei Linux führt die von Linux verwendete Shell die Ausführung und Ersetzung durch, bevor die Dinge an weitergegeben werden ffmpeg.

Mir ist nicht klar, welches Betriebssystem Sie verwenden, aber ich stelle fest, dass Sie in Ihrem ursprünglichen Beitrag auf „cmd“ verweisen. Wenn Sie Windows verwenden, cmdunterstützt (die native Windows-Eingabeaufforderung) die Verwendung nicht $(). Stattdessen sollten Sie Ihren Befehl mit versuchen powershell:

powershell ffmpeg -i $(youtube-dl -f 22 --get-url https://www.youtube.com/watch?v=EkTHhk07nv4) -ss 00:05:12.70 -t 00:00:08.10 -c:v copy -c:a copy hamster.mp4

Pfadnotizen

Bitte beachten Sie, dass bei der Verwendung der powershellobigen Option „wie sie ist“ davon ausgegangen wird, dass ffmpegund youtube-dlsystemweit verfügbar sind (d. h. die Ordner, in denen sich die jeweiligen ausführbaren Dateien befinden, sind Teil Ihrer Windows-Pfadeinstellungen).

Wenn Sie diese Ordner zu Ihrem Pfad hinzufügen möchten,Eine kurze Anleitung dazu finden Sie hier. Stellen Sie einfach sicher, dass Sie sie zu Ihren Systemvariablen hinzufügen. Außerdem sollten Sie als Randbemerkung den Windows Explorer neu starten, bevor Sie versuchen, entweder ffmpegoder zu verwenden youtube-dl(dies geschieht häufig durch einen Neustart).

ffmpegWenn Sie und nicht youtube-dlsystemweit verfügbar machen möchten, können Sie den powershellobigen Befehl mit den entsprechenden Pfaden zu ffmpeg.exeund ändern youtube-dl.exe. Um beispielsweise alles im selben Ordner zu verwenden, können Sie .\vor jedem ausführbaren Namen Folgendes hinzufügen:

powershell .\ffmpeg -i $(.\youtube-dl -f 22 --get-url https://www.youtube.com/watch?v=EkTHhk07nv4) -ss 00:05:12.70 -t 00:00:08.10 -c:v copy -c:a copy hamster.mp4

verwandte Informationen