网影留芳 – 在线视频下载与合成

网络上有许多优质的多媒体资源有本地留存的需求,在众多下载工具中,youtube-dl 无疑是其中翘楚之一。利用 youtube-dl 与 ffmpeg 结合使用,可以高效下载并处理各种在线多媒体资源。

Youtube-dl 是一款采用 Python 编写的,免费、开源、命令行程序,专门用于下载网络视频。顾名思义,youtube-dl 针对 youtube 视频下载而设计,但远不拘泥于 youtube 上的视频,其支持下载的视频网站很多。youtube-dl 可一次下载单个视频、多个视频或整个播放列表,同时支持 GNU/Linux、macOS 和 Microsoft Windows 等主流操作系统平台。

youtube-dl 的主要用法

1、直接下载

  • 单一地址下载

    youtube-dl + 下载 url
    youtube-dl + -o ‘本地存储文件名’ + 下载 url

    采用 youtube-dl 默认配置,直接下载。例如,

    youtube-dl https://www.youtube.com/watch?v=iJvr0VPsn-s
    
  • 批量下载

    youtube-dl + 下载 url1 + 下载 url2 + 下载 url3 …

    也可以将要下载视频的 URL 全部放在文本文件中,并将其作为参数传递给 youtube-dl,

    youtube-dl -a url.txt

2、列出所有可用的音/视频格式

youtube-dl -F( – – list – formats) 下载地址

使用 -F 参数列出所有可下载的音/视频格式,例如,

20200420_1

3、下载特定格式的音/视频格式

youtube-dl -f 格式标识 下载地址

格式标识可以是前述 -F 参数所列出的所有可用音/视频的标号,也可以是 youtube-dl 给出的内置标号。根据标号,可以使用 youtube-dl 下载指定标号的特定格式的音/视频。

例如,使用 -F 参数列出的音/视频标号下载,

youtube-dl -f 137 https://www.youtube.com/watch?v=3LxDO-CtR7I&list=PLXYpfqxYD0clT02bozdfajwVmz61I44QU
下载 1920 × 1080, 1080p 的视频文件

Youtube-dl 给出的内置标号:

  • best 选择最佳质量的音/视频文件
  • worst 选择质量最差的格式(视频和音频)
  • bestvideo 选择最佳质量的仅视频格式(例如DASH视频),可能无法使用。
  • worstvideo 选择质量最差的纯视频格式,可能无法使用。
  • bestaudio 选择最优质的音频格式,可能无法使用。
  • worstaudio 选择质量最差的音频格式,可能无法使用。

例如,如果要自动选择并下载最佳质量格式(音频和视频),使用以下命令:

youtube-dl -f best https://www.youtube.com/watch?v=iJvr0VPsn-s

组合格式下载

youtube-dl -f 格式标识 +/, 格式标识 下载地址

使用组合格式可以同时下载多种格式文件,并进行智能的格式合并

  • 当使用 + 进行组合格式下载,下载的视频和音频会自动调用系统中的 ffmpeg 或 avconv 进行合并;
  • 当使用 , 进行组合格式下载,下载的文件不会进行自动合并;

例如,

youtube-dl -f 137+140 https://www.youtube.com/watch?v=3LxDO-CtR7I&list=PLXYpfqxYD0clT02bozdfajwVmz61I44QU
- 下载 1920 × 1080, 1080p 的视频文件和 m4a 的音频文件,
- 下载后文件会自动合并为一个文件

youtube-dl -f 'bestvideo,bestaudio' https://www.youtube.com/watch?v=iJvr0VPsn-s
- 下载最高质量的仅视频和最高质量的纯音频格式
- 下载后文件不会自动合并

用 ffmpeg 进行多媒体处理

ffmpeg 是功能强大的多媒体处理软件,可以进行各种多媒体操作,如

  • 视频截图
  • 视频中解析出音频、视频
  • 将音频、视频进行合成
  • 视频加水印

视频、音频合并命令

ffmpeg -i .mp4 -i m4a out.mp4

Reference

  1. https://www.sysgeek.cn/youtube-dl-examples/
  2. https://blog.csdn.net/gui694278452/article/details/90633114
  3. https://blog.csdn.net/C_Python_/article/details/84479743

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注