Closed AdiEcho closed 1 year ago
这个有可能是ffprobe默认输出时会truncate metadata导致的,你能不能试试ffprobe -show_format test.mp4
,然后看看输出里面的metadata是否是完整的,也就是说或许视频文件是没有问题的
这个有可能是ffprobe默认输出时会truncate metadata导致的,你能不能试试
ffprobe -show_format test.mp4
,然后看看输出里面的metadata是否是完整的,也就是说或许视频文件是没有问题的
确实是truncate导致的,我这边windows加上-show_format后输出中文乱码了,linux下正常。 而且截断导致的错误的utf8字符仍然存在
我也在本地验证了一下 我认为现在的写入行为是正确并且没有问题的:
那么出现神秘字符的根源是什么呢?ffmpeg在truncate输出长度的时候并没有按照UTF-8的字符数量去截取,而是简单粗暴的直接截断了一个定长的byte array,这样就很容易导致最后一个字符被从中间截断,成为了UTF-8的无效字符,这个并不是metadata写入出了错而是读取的时候出了错。
应该总体上不影响使用,毕竟最后播放器也好媒体库也好应该都是能正常读取UTF-8的metadata的。Windows Powershell的兼容性问题和ffprobe粗暴的截断不太能从下载器这边来解决
不过精简元数据的下载模式依然是有用的,确实不是所有下载的视频都需要带一大堆metadata
1. 你使用的BBDown版本是什么?(指明 Release / Actions / DotnetTool)
Release最新版和Actions最新版均可复现
2. 你在什么系统使用本软件?(Win/Linux/Mac)
Win
3. 你使用的完整命令是什么?
4. 遇到了什么问题?
在下载视频后,无论是使用ffmpeg混流还是mp4box混流,使用ffprobe获取视频描述时都存在乱码,且输出不全 其他仓库在混流时没有增加多余的信息,所以想提建议增加一个精简混流功能,只保留视频的基本信息 或者在混流时跳过metadata description参数
5. 运行截图(最好开启
--debug
;注意自行将Cookie/Token等敏感信息隐藏)ffmpeg debug输出
mp4box开启debug输出后无法成功混流
mp4box关闭debug后正常混流
ffprobe输出(ffmpeg混流和mp4box混流输出基本一致,都有箭头的乱码)
bbdown与downkyi下载的视频的ffprobe输出对比