amtoaer / bili-sync

由 Rust & Tokio 驱动的哔哩哔哩同步工具
https://bili-sync.allwens.work
MIT License
485 stars 39 forks source link

docker环境下ffmpeg命令一直运行不结束,导致后续所有步骤不再进行 #98

Closed kkkdkk closed 5 months ago

kkkdkk commented 5 months ago

Quicker_20240505_105900 Quicker_20240505_111539 docker环境下,运行一段时间,可能很短,就会出现一直卡在合成视频的命令这里。主程序那里也不会继续运行下去。会一直保持这种状态。直到重启docker,然后会马上再次出现这种情况。 之前下载时有出现过多次,本以为是标题带空格或标题的其他原因。后来文件夹命名直接用的bvid,问题感觉有好转,但是还是会出现,出现以后就会一直卡住在这里。

现在出现问题的视频是bvid:BV15d4y1H7ym S01E192 S01E193 但是该系列其他视频好像有正常下载。所以我觉得应该可以排除是ffmpeg命令里面带空格导致出错的问题。

amtoaer commented 5 months ago

能看到导致卡住的完整命令吗?可以试试登录容器手动执行一下,看看是不是也会阻塞,以及有没有什么相关的输出。

kkkdkk commented 5 months ago

ffmpeg -i /Videos/Bilibilis/??????/BV15d4y1H7ym/Season 1/BV15d4y1H7ym - S01E192.tmp_video -i /Videos/Bilibilis/??????/BV15d4y1H7ym/Season 1/BV15d4y1H7ym - S01E192.tmp_audio -c copy /Videos/Bilibilis/??????/BV15d4y1H7ym/Season 1/BV15d4y1H7ym - S01E192.mp4

中文路径会导致乱码,乱码部分为 “家装”。 docker内手动执行,乱码部分替换回中文,或者直接使用复制内容,都会找不到文件路径。没有办法看到是什么错误 Quicker_20240505_121439 Quicker_20240505_121503

amtoaer commented 5 months ago

可以尝试把几个路径用引号括起来,不然空格会导致路径识别不全,程序里调用会自己处理所以不用加。

2282230595 commented 5 months ago

能看到导致卡住的完整命令吗?可以试试登录容器手动执行一下,看看是不是也会阻塞,以及有没有什么相关的输出。

这个跟我上次提的问题看起来是一样的

kkkdkk commented 5 months ago

1.之前手动执行找不到路径确实是路径带空格后缺少双引号的问题。 2.手动执行后,会出现已存在文件,询问是否覆盖的选项,手动输入y继续覆盖不出错。 3.删除会出错但是已经存在的mp4文件,重启docker,运行到该视频时,程序正常运行不出错。 4.其他的文件还是会出现这个问题,都是第一次打开下载的。 推测:有可能哪一部分已经使最终的文件生成了,但是ffmpeg会再运行一遍,发现已经存在了,会出现询问是否覆盖?然后就卡住了。 Quicker_20240505_160150

amtoaer commented 5 months ago

合理,我去看看 ffmpeg 有没有对应的命令行参数给它加上

2282230595 commented 5 months ago

合理,我去看看 ffmpeg 有没有对应的命令行参数给它加上

你好,想问一下在1.x上支持的额外命令在2.x还会不会在支持,ck过期之后下载的都是480p,删除之后不知道怎么重新下载,

amtoaer commented 5 months ago

@2282230595 暂时没有支持的打算,目前只能通过手动打开数据库,将 videos 和 pages 中被删除的视频的 status 修改为 0 实现重新下载。具体来说,videos 中的 bvid 字段对应了视频的 bvid,而 pages 中关联的 video_id 是 videos 表中的 id 列。 主要是因为程序内建了凭据刷新的功能,所以如果你的凭据是在无痕窗口中授权获取的,那么正常来说不可能会失效才对,除非 b 站抽风把你的全平台账号全部登出了。 对于后面这种情况,我打算后续在每次轮询时调用一些需要鉴权的接口(比如获取个人信息)来实现检测,如果接口返回未鉴权那么程序直接报错中断,既然是全平台登出那么用户也是可以感知的,用户手动再来更新一下凭据就好。这样就不会发生凭据过期程序还正常下载 480p 视频的情况了。

amtoaer commented 5 months ago

@kkkdkk 可以试试 v2.0.6,看看有没有解决

kkkdkk commented 5 months ago

@kkkdkk 可以试试 v2.0.6,看看有没有解决

初步试用没有再出错。我现在删掉了数据库,重新下载整个收藏夹看看会不会出错。后续再反馈

kkkdkk commented 5 months ago

运行了4小时了,还在下载中。除了b站的风控,目前没有遇到其他问题了。万分感谢!响应非常及时!