Opción no reconocida '-get-url' Error al dividir la lista de argumentos: opción no encontrada

Opción no reconocida '-get-url' Error al dividir la lista de argumentos: opción no encontrada

Estoy intentando descargar un clip de un vídeo de YouTube y seguí el camino de las herramientas de línea de comandos después de descubrir que los sitios web no están hechos para esta tarea.

Gracias a estoHilo AskUbuntu, tengo el siguiente 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

Sin embargo, después de ejecutarlo con ffmpegy youtube-dlen el mismo directorio, y cmd ejecutándose en el mismo directorio, obtengo este resultado:

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 de este error:

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

No pude entender el mensaje de error y buscar el error tampoco me dio ninguna respuesta. ¿Qué podría estar mal con el comando?

Respuesta1

No pude entender el mensaje de error y buscar el error tampoco me dio ninguna respuesta. ¿Qué podría estar mal con el comando?

ffmpegestá intentando analizar la --get-urlopción destinada a youtube-dl.

Explicación

La youtube-dlparte incrustada en el ffmpegcomando, por ejemplo:

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

se pretende:

  1. Ejecute el youtube-dlcomando (que devuelve una URL necesaria para acceder al video de YouTube).

  2. Sustituya los resultados (es decir, la URL del vídeo devuelta) en el punto indicado del ffmpegcomando.

Su problema parece ser que la $()sintaxis no se utiliza para obtener/sustituir la URL correcta. También lo ffmpeges leer el youtube-dlcomando sin formato e intentar analizar youtube-dlopciones que no estaban destinadas a ello.

Una posible solución

Una cosa a tener en cuenta es que eso $()no forma parte de ffmpeg. Es decir, ffmpegno es lo que está ejecutando youtube-dlni sustituyendo los resultados.

En el caso de Linux, cualquier shell que utilice Linux realiza la ejecución y sustitución antes de pasar las cosas a ffmpeg.

No tengo claro qué sistema operativo estás usando, pero noto que haces una referencia a "cmd" en tu publicación original. Si está en Windows, cmd(el símbolo del sistema nativo de Windows) no admite el uso de $(). En su lugar, deberías probar tu comando con 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 ruta

Tenga en cuenta que el uso de la powershellopción anterior "tal cual" supone que ffmpegestán youtube-dldisponibles en todo el sistema (es decir, las carpetas en las que residen sus respectivos ejecutables son parte de la configuración de la ruta de Windows).

Si desea agregar estas carpetas a su Ruta,Puedes encontrar un tutorial rápido sobre cómo hacerlo aquí.. Solo asegúrese de agregarlos a las variables de su sistema. Además, como nota al margen, debe reiniciar el Explorador de Windows antes de intentar utilizar o ffmpeg( youtube-dlesto suele hacerse reiniciando).

Si no desea que esté ffmpegdisponible youtube-dlen todo el sistema, puede modificar el powershellcomando anterior con las rutas respectivas a ffmpeg.exey youtube-dl.exe. Por ejemplo, para usar todo lo que está en la misma carpeta, puedes agregar .\delante de cada nombre ejecutable:

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

información relacionada