需要帮助使用 ffmpeg 下载 m3u8 视频文件

nir*_*med 2 ffmpeg

通常这是 ffmpeg 的一个简单任务,但我有这个链接:

https://nana10-hdv-uk-sw.ctedgecdn.net/Nana10-Vod/_definst_/amlst:mediaroot/nana10/media/iiscdn/2018/04/kvarnitim230418_,500,700,1000,1400,1800,.mp4/playlist.m3u8?btoken=26b11ccee70374a261182857501b7fa673123f13f75735f97a2abfa6052dd060&str=1527695859&exp=1527697059
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下简单行将其下载到我的计算机:

ffmpeg -i input -c copy output.mp4
Run Code Online (Sandbox Code Playgroud)

然而,它没有成功并卡住,尽管 VLC 播放器可以毫无问题地加载它。

MacBook-Pro:downloads$ ffmpeg -i https://nana10-hdv-uk-sw.ctedgecdn.net/Nana10-Vod/_definst_/amlst:mediaroot/nana10/media/iiscdn/2018/04/kvarnitim230418_,500,700,1000,1400,1800,.mp4/playlist.m3u8?btoken=26b11ccee70374a261182857501b7fa673123f13f75735f97a2abfa6052dd060&str=1527695859&exp=1527697059 -c copy b.mp4
[3] 14301
[4] 14302
-bash: -c: command not found
[4]   Done                    str=1527695859
MacBook-Pro:downloads$ ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.0 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags=-I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/ --host-ldflags= --enable-gpl --enable-chromaprint --enable-ffplay --enable-frei0r --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopus --enable-librsvg --enable-librtmp --enable-librubberband --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzmq --enable-opencl --enable-videotoolbox --enable-openssl --enable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.3.0/include/openjpeg-2.3 --enable-nonfree
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Run Code Online (Sandbox Code Playgroud)

我认为这与链接的阅读方式有关,因为它有“。” 这使得 ffmpeg 可能将其作为文件读取,并认为该行的其余部分是一个命令。

nir*_*med 7

好的,我已经找到了解决我的问题的方法。我只需要在链接之前和之后放置,然后 ffmpeg 就知道链接在哪里完成。

ffmpeg -i "https://nana10-hdv-uk-sw.ctedgecdn.net/Nana10-Vod/_definst_/amlst:mediaroot/nana10/media/iiscdn/2018/04/kvarnitim230418_,500,700,1000,1400,1800,.mp4/playlist.m3u8?btoken=26b11ccee70374a261182857501b7fa673123f13f75735f97a2abfa6052dd060&str=1527695859&exp=1527697059" -c copy b.mp4
Run Code Online (Sandbox Code Playgroud)