一次调用即可处理视频文件中的多个流

时间:2019-12-18 16:37:41

标签: hash ffmpeg

我正在处理一个视频处理脚本,该脚本必须使用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个比特流? 我想避免一次又一次从磁盘读取该文件。

1 个答案:

答案 0 :(得分:1)

使用ffmpeg的最新* git版本运行

ffmpeg -i in -map 0 -f streamhash -hash sha256 -

这将为表单的每个流打印一个哈希,

0,v,SHA256=84dd5b99e1b5fa8877e3365d1a24056ae37c7b3e17a7ab314ec33dbd5034687d
1,a,SHA256=c2ac1a155d451405dbedb0a999e801676e45fb2d17c8025da7c035cc1e8fff92

*(> 2019年9月20日)