ffmpeg可以直接指定m3u8的地址进行下载:
格式:
ffmpeg -threads 0 -i “m3u8的地址” -c copy -y -bsf:a aac_adtstoasc “保存的文件名”
ffmpeg -threads 0 -i "https://apd-vlive.apdcdn.tc.qq.com/defaultts.tc.qq.com/12345.ts.m3u8?ver=4" -c copy -y -bsf:a aac_adtstoasc "G:\Download\Video.mp4"
说明:
-threads 0: 这个选项用于设置ffmpeg使用的线程数。0通常表示使用与设置的CPU核心数相等的线程数,让ffmpeg自动根据系统资源进行优化。
-i “URL”: -i参数后面跟的是输入文件的路径或URL。在这里,它指向一个HLS流的m3u8播放列表文件,这个文件实际上并不包含视频或音频数据,而是包含了多个用于流媒体的TS(Transport Stream)片段的URL。
-c copy: 这个选项告诉ffmpeg直接复制输入流的编解码数据到输出文件,而不是进行重新编码。这可以节省处理时间和CPU资源,同时确保输出文件与原始流的质量相同。
-y: 如果输出文件已经存在,这个选项会覆盖它,而不是询问用户是否要覆盖。
-bsf:a aac_adtstoasc: 这是一个比特流过滤器(bitstream filter),用于将AAC音频的ADTS(Audio Data Transport Stream)格式转换为ASC(Audio Stream Container)格式。这是因为HLS流中的AAC音频通常以ADTS格式封装,而一些播放器或设备可能期望AAC音频以ASC格式封装在MP4容器中。