Opção não reconhecida '-get-url' Erro ao dividir a lista de argumentos: opção não encontrada

Opção não reconhecida '-get-url' Erro ao dividir a lista de argumentos: opção não encontrada

Estou tentando baixar um clipe de um vídeo do YouTube e segui o caminho das ferramentas de linha de comando depois que descobri que os sites não são adequados para essa tarefa.

Graças a istoTópico AskUbuntu, eu tenho o seguinte comando:

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

No entanto, depois de executá-lo com ffmpege youtube-dlno mesmo diretório, e cmd executando no mesmo diretório, recebo esta saída:

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

Seguido por este erro:

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

Não consegui entender a mensagem de erro e a pesquisa pelo erro também não me deu nenhuma resposta. O que poderia estar errado com o comando?

Responder1

Não consegui entender a mensagem de erro e a pesquisa pelo erro também não me deu nenhuma resposta. O que poderia estar errado com o comando?

ffmpegestá tentando analisar a --get-urlopção destinada a youtube-dl.

Explicação

A youtube-dlparte incorporada no ffmpegcomando ex.:

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

destina-se a:

  1. Execute o youtube-dlcomando (que retorna uma URL necessária para acessar o vídeo do YouTube).

  2. Substitua os resultados (ou seja, o URL do vídeo retornado) no ponto especificado do ffmpegcomando.

Seu problema parece ser que a $()sintaxe não está sendo usada para obter/substituir o URL correto. O mesmo ffmpegocorre com a leitura do comando bruto youtube-dle a tentativa de analisar youtube-dlopções que não foram destinadas a ele.

Uma possível solução

Uma coisa a ter em conta é que isso $()não faz parte do ffmpeg. Ou seja, ffmpegnão é o que está executando youtube-dlou substituindo os resultados.

No caso do Linux, qualquer shell que o Linux esteja usando faz a execução e a substituição antes de passar as coisas para o ffmpeg.

Não está claro para mim qual sistema operacional você está usando, mas percebi que você fez uma referência a "cmd" em sua postagem original. Se você estiver no Windows, cmd(o prompt de comando nativo do Windows) não oferece suporte ao uso de $(). Em vez disso, você deve tentar seu comando com 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

Notas de caminho

Observe que o uso da powershellopção acima "no estado em que se encontra" pressupõe que ffmpege youtube-dlestão disponíveis em todo o sistema (ou seja, as pastas nas quais residem seus respectivos executáveis ​​fazem parte das configurações do caminho do Windows).

Se você deseja adicionar essas pastas ao seu caminho,você pode encontrar um tutorial rápido sobre como fazer isso aqui. Apenas certifique-se de adicioná-los às variáveis ​​do sistema. Além disso, como observação lateral, você deve reiniciar o Windows Explorer antes de tentar usar ou ffmpeg( youtube-dlisso geralmente é feito com uma reinicialização).

Se você não deseja disponibilizar ffmpegem youtube-dltodo o sistema, você pode modificar o powershellcomando acima com os respectivos caminhos para ffmpeg.exee youtube-dl.exe. Por exemplo, para usar tudo na mesma pasta, você pode adicionar .\antes do nome de cada executável:

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

informação relacionada