Closed jlwmkyuqd849 closed 3 months ago
麻烦大佬有时间修复下,感谢
好
1.应该是合并的问题,下载的ts文件用ffmpeg合并出来的mp4是正常的 2.命令行模式可以设置 不删除ts和不进行mp4转换么,我先用你的工具多线程下载(多线程下载非常赞,速度特别快),然后暂时先使用ffmpeg进行合并mp4
初步原因,是合并的问题。
ts列表本身也有毛病,00572.ts - 00575.ts 这些文件看起来是平台插播的广告,手动把广告删除掉也就没毛病了。
我使用ffmpeg 合并mp4也有问题,我使用的命令是:
ffmpeg -i "concat:00571.ts|00572.ts|00573.ts|00574.ts|00575.ts|00576.ts" -c copy output.mp4
初步原因,是合并的问题。 ts列表本身也有毛病,00572.ts - 00575.ts 这些文件看起来是平台插播的广告,手动把广告删除掉也就没毛病了。 我使用ffmpeg 合并mp4也有问题,我使用的命令是: ffmpeg -i "concat:00571.ts|00572.ts|00573.ts|00574.ts|00575.ts|00576.ts" -c copy output.mp4
1.里面确实是有广告部分,但是假如要批量自动下载,一个一个的删除广告有点麻烦 2.我用 ffmpeg 直接合并全部这样是正常的,我用的命令是 ffmpeg -f concat -safe 0 -i "./file_list.txt" -c copy "out.mp4" ,file_list.txt里面是包含广告部分的,这样合并出来的mp4是正常的, 3../file_list.txt文件里面是这样的 file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00001.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00002.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00003.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00004.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00005.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00006.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00007.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00008.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00009.ts' file 'D:\测试\downloading\346b4cfdcc1f540a241ca60c7daa4cb1abb47a3b4966ceaaebf623e64accd334\00010.ts'
1.确实是你说的,里面有广告片段导致的,
- 命令行模式可以设置 不删除ts "SkipRemoveTs" "不删除下载的ts文件"
- 命令行、ui都没有 "是否进行mp4转换" 的开关
感谢回复,另外一个回复https://github.com/orestonce/m3u8d/issues/29#issuecomment-1998978752 麻烦你也看下,感谢
你先分析一下同网站上的不同视频使用的广告ts文件是否内容完全相同,大概率是相同的
如果相同,则先使用ts下载工具下载ts,然后按照广告文件的hash进行查找广告并删除(这一步需要你自己写个脚本)
最后使用 m3u8d 单独提供的 "合并ts (merge命令)" 功能进行合并视频。
如此可以实现批量下载。
目前想到的是分析每个ts文件的宽高,然后将宽高相同的文件合并为1个mp4视频。
此方法需要gomedia的作者提供一个解析ts文件的视频宽高的方式,解析出每个ts文件宽高,然后才能继续。
- 刚才我提交了一个新版本,命令行和ui都支持了 "SkipMergeTs 不合并ts为mp4“ 选项,默认为关闭。
- 昨天我开issue询问了底层合并ts为mp4的库(gomedia)作者,据解释深层次原因是增加的广告的视频宽高和正片的宽高不一样,而这种情况gomedia和ffmpeg处理形式不同。这最终导致了gomedia合并出来的视频播放异常。
目前临时解决方法
你先分析一下同网站上的不同视频使用的广告ts文件是否内容完全相同,大概率是相同的 如果相同,则先使用ts下载工具下载ts,然后按照广告文件的hash进行查找广告并删除(这一步需要你自己写个脚本) 最后使用 m3u8d 单独提供的 "合并ts (merge命令)" 功能进行合并视频。 如此可以实现批量下载。
长远解决方法
目前想到的是分析每个ts文件的宽高,然后将宽高相同的文件合并为1个mp4视频。 此方法需要gomedia的作者提供一个解析ts文件的视频宽高的方式,解析出每个ts文件宽高,然后才能继续。
如果你有更好的想法,欢迎跟帖
可以提供一个选项把m3u8文件里面 EXT-X-DISCONTINUITY 之间的分片过滤掉
可以提供一个选项把m3u8文件里面 EXT-X-DISCONTINUITY 之间的分片过滤掉
@yapingcat 这是个好主意,download 命令新增了 Skip_EXT_X_DISCONTINUITY 选项,开启后可以跳过 "EXT-X-DISCONTINUITY 之间的分片"
@jlwmkyuqd849 这个问题有了新的解决方法,你的m3u8包含的广告片段都在 EXT-X-DISCONTINUITY 之间,目前download命令和ui都新增了 Skip_EXT_X_DISCONTINUITY 选项,可以直接不下载广告视频,最新版本已经提供此功能。
其次,你问的"合并ts (merge命令)", 这个命令是和 download命令同一级别的,具体用法是:
@jlwmkyuqd849 这个问题有了新的解决方法,你的m3u8包含的广告片段都在 EXT-X-DISCONTINUITY 之间,目前download命令和ui都新增了 Skip_EXT_X_DISCONTINUITY 选项,可以直接不下载广告视频,最新版本已经提供此功能。
其次,你问的"合并ts (merge命令)", 这个命令是和 download命令同一级别的,具体用法是:
- .\m3u8d_cli_windows_386.exe download -h
- .\m3u8d_cli_windows_386.exe merge -h 最新下载命令
- ./m3u8d_cli_linux_386-v1.23.0 download -u https://cdn.wlcdn99.com:777/80b032fc/index.m3u8 --Skip_EXT_X_DISCONTINUITY
感谢大佬的回复和支持,我去下载新版本,使用Skip_EXT_X_DISCONTINUITY命令
可以提供一个选项把m3u8文件里面 EXT-X-DISCONTINUITY 之间的分片过滤掉
感谢提供的方案
https://cdn.wlcdn99.com:777/80b032fc/index.m3u8 你可以拿这个地址试下,开头、后半段异常比较多