인식할 수 없는 옵션 '-get-url' 인수 목록 분할 오류: 옵션을 찾을 수 없습니다.

인식할 수 없는 옵션 '-get-url' 인수 목록 분할 오류: 옵션을 찾을 수 없습니다.

YouTube 비디오에서 클립을 다운로드하려고 하는데 웹사이트가 이 작업에 적합하지 않다는 것을 알게 된 후 명령줄 도구를 사용했습니다.

덕분에AskUbuntu 스레드, 다음 명령이 있습니다.

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및 를 사용하여 실행 youtube-dl하고 동일한 디렉터리에서 cmd를 실행하면 다음과 같은 출력이 표시됩니다.

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-dlYouTube 비디오에 액세스하는 데 필요한 URL을 반환하는 명령을 실행합니다 .

  2. 명령 의 지정된 지점에서 결과(즉, 반환된 비디오 URL)를 대체합니다 ffmpeg.

$()귀하의 문제 는 올바른 URL을 얻거나 대체하는 데 구문이 사용되지 않는 것 같습니다 . ffmpeg원시 명령을 읽고 의도하지 않은 옵션을 youtube-dl구문 분석하려고 시도하는 것도 마찬가지입니다 .youtube-dl

가능한 해결책

알아야 할 한 가지는 의 $()일부가 아니라는 것입니다 ffmpeg. 즉, 결과를 ffmpeg실행하거나 대체하는 것이 아닙니다 .youtube-dl

Linux의 경우 Linux가 사용하는 쉘은 ffmpeg.

어떤 OS를 사용하고 있는지는 확실하지 않지만 원본 게시물에서 "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위의 "있는 그대로" 옵션을 사용하면 시스템 전체에서 사용할 수 ffmpeg있다고 가정합니다 youtube-dl(즉, 해당 실행 파일이 있는 폴더가 Windows 경로 설정의 일부임).

이 폴더를 경로에 추가하려면,여기에서 이를 수행하는 방법에 대한 빠른 튜토리얼을 찾을 수 있습니다.. 시스템 변수에 추가했는지 확인하세요. 또한 참고로 또는 중 하나를 사용하기 전에 Windows 탐색기를 다시 시작해야 합니다 ffmpeg( 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

관련 정보