我想下载流视频。当我转到Chrome DevTools->网络而不是指向mp4视频的链接时,我发现有很多类似的链接...hd4b.mp4/fragment-1-v1.m4s
和其他类似...a1.m4s
的音频链接。还有一个首字母...hd4b.mp4/init-v1.mp4
和...init-a1.mp4
。片段太多,无法手动复制。
因此,我需要知道如何为我想要的.mp4文件过滤所有.m4s片段链接。这里有一个答案,它为我提供了网络中的所有链接,执行该链接后,我可以将链接粘贴到文件中,但是它也会获得不属于我想要的.mp4的链接。并不重要,但仅获取的链接会很好...hd4b.mp4
。
如何将视频链接保存在一个文件中,将音频链接保存在另一个文件中?
我应该如何处理这些init
链接?将它们添加到列表中?
现在,我认为,获取链接的方法将是到视频末尾并获取最后一个数字,并生成将数字从一个更改为最后一个的链接。我将如何生成链接?回答。
然后,当我拥有链接时,可以通过以下方式下载它们,但是如何合并视频部分?
当我拥有音频和视频时,如何将它们合并到最终的mp4中?
youtube-dl
尝试使用最新版本下载视频。如果您无法按照步骤进行。
首先获得链接
在Chrome中,转到DevTools->网络,然后找到第一个和最后一个片段链接。如果链接是顺序的,则生成如下链接:
seq -f "...hd4b.mp4/fragment-%g-v1.m4s" 10 > video-links.txt
凡%g
从1将去10.如果有它必须被包括在年初一个init链接video-links.txt
文件。
如果链接不是顺序的,则复制它们,如下所示:
copy(UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url).join('\n'))
您可以在“源代码”面板中将代码另存为代码段,然后通过右键单击或按Ctrl-Enter来运行它:
var URLs = UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes.map(n => n._request._url);
copy(URLs.join('\n'));
URLs; // displays it in the console as an expandable array
执行脚本后,链接位于剪贴板中,因此请将其粘贴到文件中。
下载视频和音频
wget -i "video-links.txt" -O "video.mp4" -B "...hd4b.mp4/"
在URL的基础上使用-B选项。
按照与视频相同的步骤下载音频。
合并视频和音频
ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句