标题: 【练手整活】100 MB 俩半小时《哪吒2》?(60 fps,720*300,带声音)
时间: 1天前发布,1天前修改
视频链接:【极限压缩】哪吒2(10分钟片段).mp4(7.85 MB)
Windows:Win11 浏览器画音正常。< Win11 浏览器会无声音,可下载后 PotPlayer 正常观看。
Android:四年前手机内置浏览器画音正常。≥ Android 9 可下载后 MX Player 正常观看(需要:设置——解码器——硬解+音频编解码器——☑️AAC)。
iOS:iPhone 15 Pro 及以上,才能在 Safari 正常观看?
macOS:🍎 M3 及以上,才能在 Safari 正常观看?< 🍎 M3 可换用 Chrome 或下载后 IINA 正常观看。
『回复列表(9|隐藏机器人聊天)』
先用 ffmpeg 的 scene detection,或者其他 av-scenechange 库之类的,算出每一帧变化幅度。
再想好视频要多久才设立一个关键帧,供拖拽进度条定位。(我这里设计平均 15 秒,允许间隔上一帧 1~30 秒。后面试试平均 20 秒,允许间隔 10~30 秒)
用动态规划 + 单调队列 + 路径回溯,能快速挑选出累计变化幅度最大的 576 帧(144 分钟 / 15 秒),同时满足相邻关键帧间隔 1~30 秒。
抽象出的算法描述,可见《一个小算法题:如何挑选总和最大的若干个数字?》。后面我也整理成可嵌入脚本的代码,放到那个帖子里。
现在用 Python 实现的,跑一次要 10~20 GB 内存,Mac Mini + 16GB 都吃不消,用的 Win Mini + 48GB 大内存跑的。。
想改写成 C 代码,方便用 tcc 嵌入转码视频脚本,速度又快又省内存,单脚本文件放到其他环境也方便。。
但发现 macOS 不支持运行 tcc。。现在不知用啥写较好。。