無法辨識的選項「-get-url」拆分參數清單時發生錯誤:找不到選項

無法辨識的選項「-get-url」拆分參數清單時發生錯誤:找不到選項

我正在嘗試從 YouTube 影片下載一個剪輯,在發現網站不適合此任務後,我採用了命令列工具。

多虧了這個詢問Ubuntu線程,我有以下命令:

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

但是,在同一目錄中使用ffmpeg和運行它並且在同一目錄中運行 cmd 後,我得到以下輸出:youtube-dl

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

隨後出現此錯誤:

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

我一直無法理解錯誤訊息,搜尋錯誤也沒有給我任何答案。該指令可能有什麼問題?

答案1

我一直無法理解錯誤訊息,搜尋錯誤也沒有給我任何答案。該指令可能有什麼問題?

ffmpeg正在嘗試解析--get-url用於 的選項youtube-dl

解釋

youtube-dl命令中嵌入的部分例如ffmpeg

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

旨在:

  1. 執行該youtube-dl命令(返回訪問 YouTube 影片所需的 URL)。

  2. 替換命令中給定點的結果(即傳回的影片 URL)ffmpeg

您的問題似乎是$()未使用語法來獲取/替換正確的 URL。ffmpeg讀取原始youtube-dl命令並嘗試解析youtube-dl不適合它的選項也是如此。

一個可能的解決方案

需要注意的一件事是,這$()不是ffmpeg.也就是說,ffmpeg不是運行youtube-dl或替換的結果。

對於 Linux,無論 Linux 使用哪個 shell,都會在將內容傳遞給 之前執行和取代ffmpeg

我不清楚您正在使用哪個作業系統,但我注意到您在原始帖子中引用了“cmd”。如果您使用的是 Windows,cmd(本機 Windows 命令提示字元)不支援使用$().相反,您應該嘗試使用以下命令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

路徑註釋

powershell請注意, 「按原樣」使用上面的選項假定ffmpegyoutube-dl在系統範圍內可用(即,它們各自的可執行檔所在的資料夾是 Windows 路徑設定的一部分)。

如果您想將這些資料夾新增到您的路徑中,您可以在此處找到有關如何執行此操作的快速教程。只需確保將它們添加到您的系統變數中即可。另外,作為旁注,您應該在嘗試使用ffmpeg或之前重新啟動 Windows 資源管理器youtube-dl(這通常是透過重新啟動來完成)。

如果您不希望在系統範圍內使ffmpeg和可用,您可以使用和的相應路徑修改上面的命令。例如,要使用相同資料夾中的所有內容,您可以在每個可執行檔案名稱前面新增:youtube-dlpowershellffmpeg.exeyoutube-dl.exe.\

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

相關內容