混合搭配格式

混合搭配格式

我想使用类似这样的格式选择器-f bestvideo+best audio whose extension is compatible with the video extension这样它们就不需要被多路复用到 mkv ( WARNING: Requested formats are incompatible for merge and will be merged into mkv.) 中。

注意:我知道,-f best但我不想要那样。我希望音频和视频的质量尽可能好,同时确保它们兼容。该怎么做?

答案1

您可以使用以下方式下载最佳视频和音频:

youtube-dl -f bestvideo+bestaudio "link to youtube video"

如果出现错误,请尝试以下操作:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 "link to youtube video"

在这里,您可以分别下载最佳视频和音频,然后合并为一个文件(在本例中为 mp4 文件)。您还可以更改合并视频的输出格式。

祝你好运!

答案2

老问题,但谷歌上的第一个答案是:

通过定义以下函数,它对我有用(也可以将其放在~/.bashrc):

youtube-dl_video_and_audio_best_no_mkv_merge () {
  video_type=$(youtube-dl -F "$@" | grep "video only" | awk '{print $2}' | tail -n 1)
  case $video_type in
    mp4)
      youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]' "$@";;
    webm)
      youtube-dl -f 'bestvideo[ext=webm]+bestaudio[ext=webm]' "$@";;
    *)
      echo "new best videoformat detected, please check it out! -> aborted";;
  esac
}

现在你可以下载

youtube-dl_video_and_audio_best_no_mkv_merge "https://www.youtube.com/watch?v=*******" "https://https://www.youtube.com/watch?v=********"

来源:自己创作

答案3

混合搭配格式

这将显示链接视频的所有可用格式。

youtube-dl -F [http_link]

所以

然后只需选择格式并加入加号即可。

137 = 2k,30fps。例如,我不需要 60fps,但我想要最好的音频。

youtube-dl -f 137+bestaudio --merge-output-format mkv [http_link]

请注意,并非所有格式都能合并为 mp4,因此 mkv 是更安全的选择。

答案4

与上述类似,我使用以下方法下载播放列表中所有视频的最佳视频和最佳音频

有一个手动组件,你需要在与 youtube-dl 相同的目录中有 FFMpeg 文件夹

首先运行 .\youtube-dl.exe --list-formatshttps://www.youtube.com/watch?v=cTcMtgA6iYt

示例输出:

.\youtube-dl.exe --list-formats 的输出 https://www.youtube.com/watch?v=cTcMtgA6iYt


现在选择要合并的格式编号 [视频为 137,音频为 140] 注意 | 您需要选择相同的格式容器,例如视频的 313 不适用于 140,您需要一个仅 webm 音频文件,例如 251

然后运行以下命令

.\youtube-dl.exe --ffmpeg-location “D:\FFmpeg\ffmpeg-N-100072-g1555cfedf6-win64-gpl-shared-vulkan\bin\ffmpeg.exe” --format 137+140 --yes-playlist -ihttps://www.youtube.com/playlist?list=PLFfX4Mdr5gLs52KWVl3KQNrRpTmLOn


下载完所有 137 可用的文件后,重新运行相同的命令,但这次使用下一个最佳代码,如 136+140

我通常会这么做...

最后...我跑了

.\youtube-dl.exe --ffmpeg-location “D:\FFmpeg\ffmpeg-N-100072-g1555cfedf6-win64-gpl-shared-vulkan\bin\ffmpeg.exe” --format 22 --yes-playlist -ihttps://www.youtube.com/playlist?list=PLFfX4Mdr5gLs52KWVl3ZQNrSoTmLOnQdk

22 - 将拾取所有错过的视频,当您忽略格式开关时,它是 youtube-dl 默认下载的视频和音频合并文件

相关内容