我正在处理一个视频处理脚本,该脚本必须使用ffmpeg处理大型视频文件(100-500 GB)。 该视频文件包含9个流:
1个视频流和8个音频流。
现在,我想为每个流计算sha256哈希。像这样对单个流工作正常:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//...
registerActivityLifecycleCallbacks(new LifecycleHandler(this));
//...
}
这应该从流0(视频)生成sha256哈希。
我可以为所有流循环该命令,这将导致读取和处理该文件9次。
是否有一种方法可以一次读取该文件并并行处理所有9个比特流? 我想避免一次又一次从磁盘读取该文件。
答案 0 :(得分:1)
使用ffmpeg的最新* git版本运行
ffmpeg -i in -map 0 -f streamhash -hash sha256 -
这将为表单的每个流打印一个哈希,
0,v,SHA256=84dd5b99e1b5fa8877e3365d1a24056ae37c7b3e17a7ab314ec33dbd5034687d
1,a,SHA256=c2ac1a155d451405dbedb0a999e801676e45fb2d17c8025da7c035cc1e8fff92
*(> 2019年9月20日)