如果我使用下载视频影片下载我可以在下载时观看零件文件(在我的情况下使用多用途车)。假设我不能或不想选择同时包含视频和音频的格式,则零件文件中的音频会丢失,因为它是在视频下载完成后下载并合并的。
有没有什么快速的方法可以在下载过程中合并音频和视频,以便我可以观看包括音频的部分文件。
我已经问过类似的问题github并了解到我可以使用该--downloader ffmpeg
选项。这可行,但非常慢,所以我正在寻找一种更快的方法来做到这一点。
如果我下载很大的高质量视频(例如 10 小时长),就会出现此问题。但是下载音频要快得多。假设我已经有了音频文件并且正在下载视频文件。是否有一种间接的方法(解决方法),例如使用 ffmpeg 在下载文件时将音频连续合并到视频中。
答案1
选项1:您可以选择包含视频和音频的混合/复用流的视频下载格式。
例如,
yt-dlp -F https://youtu.be/3QnD2c4Xovk
将列出要选择的格式,以及类似的内容
yt-dlp -f 18 https://youtu.be/3QnD2c4Xovk
将选择该格式。如果格式支持,部分文件包含视频和音频。
选项2:您还可以选择下载两种格式,音频和视频各一种,然后通过以下方式进行混合yt-dlp
:
yt-dlp -f 251,244 https://youtu.be/3QnD2c4Xovk
我首先指定的格式(此处为 251)在我的测试中首先下载,我可以通过播放部分文件立即收听。
为了完整起见:以上当前输出
yt-dlp -F https://youtu.be/3QnD2c4Xovk
[youtube] Extracting URL: https://youtu.be/3QnD2c4Xovk
[youtube] 3QnD2c4Xovk: Downloading webpage
[youtube] 3QnD2c4Xovk: Downloading ios player API JSON
[youtube] 3QnD2c4Xovk: Downloading android player API JSON
[youtube] 3QnD2c4Xovk: Downloading m3u8 information
[info] Available formats for 3QnD2c4Xovk:
ID EXT RESOLUTION FPS CH │ FILESIZE TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2 mhtml 48x27 0 │ mhtml │ images storyboard
sb1 mhtml 67x45 0 │ mhtml │ images storyboard
sb0 mhtml 135x90 0 │ mhtml │ images storyboard
233 mp4 audio only │ m3u8 │ audio only unknown [en] Default
234 mp4 audio only │ m3u8 │ audio only unknown [en] Default
139 m4a audio only 2 │ 1.84MiB 48k https │ audio only mp4a.40.5 48k 22k [en] low, m4a_dash
249 webm audio only 2 │ 2.22MiB 57k https │ audio only opus 57k 48k [en] low, webm_dash
250 webm audio only 2 │ 3.02MiB 78k https │ audio only opus 78k 48k [en] low, webm_dash
140 m4a audio only 2 │ 4.91MiB 127k https │ audio only mp4a.40.2 127k 44k [en] medium, m4a_dash
251 webm audio only 2 │ 5.82MiB 151k https │ audio only opus 151k 48k [en] medium, webm_dash
17 3gp 176x144 12 1 │ 2.17MiB 56k https │ mp4v.20.3 mp4a.40.2 22k [en] 144p
394 mp4 216x144 24 │ 1.26MiB 33k https │ av01.0.00M.08 33k video only 144p, mp4_dash
269 mp4 216x144 24 │ ~ 4.53MiB 115k m3u8 │ avc1.4D400C 115k video only
160 mp4 216x144 24 │ 717.16KiB 18k https │ avc1.4D400C 18k video only 144p, mp4_dash
603 mp4 216x144 24 │ ~ 5.39MiB 136k m3u8 │ vp09.00.11.08 136k video only
278 webm 216x144 24 │ 1.34MiB 35k https │ vp09.00.11.08 35k video only 144p, webm_dash
395 mp4 360x240 24 │ 1.41MiB 37k https │ av01.0.00M.08 37k video only 240p, mp4_dash
229 mp4 360x240 24 │ ~ 6.73MiB 170k m3u8 │ avc1.4D400D 170k video only
133 mp4 360x240 24 │ 1.11MiB 29k https │ avc1.4D400D 29k video only 240p, mp4_dash
604 mp4 360x240 24 │ ~ 9.56MiB 242k m3u8 │ vp09.00.20.08 242k video only
242 webm 360x240 24 │ 1.58MiB 41k https │ vp09.00.20.08 41k video only 240p, webm_dash
396 mp4 540x360 24 │ 2.13MiB 55k https │ av01.0.01M.08 55k video only 360p, mp4_dash
230 mp4 540x360 24 │ ~ 16.81MiB 425k m3u8 │ avc1.4D4015 425k video only
134 mp4 540x360 24 │ 2.31MiB 60k https │ avc1.4D4015 60k video only 360p, mp4_dash
18 mp4 540x360 24 2 │ ≈ 7.36MiB 186k https │ avc1.42001E mp4a.40.2 44k [en] 360p
605 mp4 540x360 24 │ ~ 19.08MiB 482k m3u8 │ vp09.00.21.08 482k video only
243 webm 540x360 24 │ 2.66MiB 69k https │ vp09.00.21.08 69k video only 360p, webm_dash
397 mp4 720x480 24 │ 3.21MiB 83k https │ av01.0.04M.08 83k video only 480p, mp4_dash
231 mp4 720x480 24 │ ~ 29.80MiB 753k m3u8 │ avc1.4D401E 753k video only
135 mp4 720x480 24 │ 4.36MiB 113k https │ avc1.4D401E 113k video only 480p, mp4_dash
606 mp4 720x480 24 │ ~ 28.21MiB 713k m3u8 │ vp09.00.30.08 713k video only
244 webm 720x480 24 │ 4.21MiB 109k https │ vp09.00.30.08 109k video only 480p, webm_dash
您可以通过该yt-dlp
工具看到“仅音频”和“仅视频”描述文本。
答案2
扩展 Ned64 的答案,您可以像这样开始下载:
yt-dlp -f 'bestaudio[ext=m4a],bestvideo[ext=mp4]' 'https://www.youtube.com/watch?v=2tdiKTSdE9Y'
完成音频下载后,在下载视频的同时,您可以使用 mpv 的--audio-file
选项:
mpv --audio-file="*[2tdiKTSdE9Y].m4a" "*[2tdiKTSdE9Y].mp4.part"
它可能也适用于 ogg 和 webm 变体。