下载ts流视频的成功方法

疫情当前,很多高水平的专家纷纷在网上开启直播授课,有些授课内容价值连城,堪称经典,值得珍藏。但是,实际情况是并不是所有的直播课程都能轻松下载,比如遇到了以“.ts”后缀的视频流,就无法下载,欲哭无泪。怎么办,想办法。

1、什么是ts

网络资料显示:ts是日本高清摄像机拍摄下进行的封装格式,全称为MPEG2-TS。ts即"Transport Stream"的缩写。MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。

有些网站上播放的视频流,就是许多以.ts为后缀的极短视频组成的。看到这里,初次接触的小伙伴,肯定会想,那就把所有的.ts后缀的极短视频都下载了,然后合并所有文件就行了。

这种思路完全没有问题,但是一个60分钟的视频,可能就有上千个.ts文件,如果手动批量下载、再合并是一件很痛苦的事情。痛苦点有:

  • 找到所有的.ts视频文件名。由于视频流边播边下的特点,要找到所有的.ts文件,要等到整个视频播放完,才能获得所有的.ts文件。
  • 保证所有.ts视频文件名排序正确。如果让视频流自动播放产生相应的.ts文件,那么视频流的顺序应该是正确的。如果播放过程中有拖拉,是否还能保证.ts视频流的顺序,就不好说了。有些帖子说.ts的命名都是很规则的递增排列,但是我下载的一个视频却不是这样。
  • 下载所有的.ts视频文件。把所有的.ts视频文件名链接加载到迅雷下载中,可以完成批量下载,但是上千个文件,也是很容易出错的。
  • 合并所有的.ts视频文件。我用了不知名的“ts合并工具”去合并,结果这个软件输出的内容驴唇对不马嘴,不知道是不是处理的文件数太多的原因,whatever,不费时间去搞它了。

2、发现m3u8

总之,手工去下载这些.ts文件,真的是不归路。无意之中,发现了以.m3u8为后缀的文件。原来,所有的.ts极短视频文件的播放列表就保存在了这个文件之中。

知道.m3u8文件保存了所有.ts极短视频文件的播放列表,就等于找到了第一个关键。那么,如何找到.m3u8文件就成了第二个关键。看了网上给出的一些建议,比如csdn一位网友给出的建议是:

  • 首先使用Chrome打开网页,单击F12打开开发者工具 ;
  • 开始视频播放,在F12出来的界面中单击Network 在Network中有文件列表;
  • 检查当中是否存在m3u8结尾的文件。

按照这个操作,我没有找到.m3u8文件。我就下载了360浏览器,在功能拓展中添加了“猫抓”扩展应用,在播放视频的时候,“猫抓”很快就抓到了.m3u8文件。把这个文件和查看网页源代码中找到的.m3u8文件对比,后者多了一些“u002F”等字符段。

3、自动下载视频

这里用的还是上述那位csdn网友的方法,成功了。命令操作如下:

ffmpeg -i   你查找到的播放列表.m3u8 -c copy -bsf:a aac_adtstoasc 自定义文件名.mp4

4、安装ffmpeg

ffmpeg是什么:FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。引用csdn网友镇上村树的博客内容如下:

  • 下载进入http://ffmpeg.org/download.html#build-windows选择点击打开链接Windows对应的版本下载
  • 解压到指定目录;
  • 将解压后的文件目录中 bin 目录(包含 ffmpeg.exe )添加进 path 环境变量中;
  • 进入 cmd,输入 ffmpeg -version,可验证当前系统是否识别 ffmpeg,以及查看 ffmpeg 的版本。

5、其他

按照以上操作,能够完成.ts视频流的下载。但是以下问题还有待解决:

  • 如何快速方便的找到.m3u8文件?
  • ffmpeg还能做些什么视频操作?(http://www.ruanyifeng.com/blog/2020/01/ffmpeg.html)
  • 有没有其他更方便的方式?比如在Chrome中添加一个插件,就能一步到位。

你可能感兴趣的:(经验分享)