如何解决FFMpeg随机是否为连续执行生成相同的伪随机数序列?
例如,如果我两次执行命令:
%02hhu
对于相同的源文件,我具有相同的输出文件。为什么?我想获取其他输出文件。
测试配置:
ffmpeg -i input.mp4 -vf geq=r='random(1)*255':g='random(1)*255':b='random(1)*255' -strict -2 output.mp4
我想那是因为随机发生器的起始值是相同的。 ffmepg具有像srand一样的功能吗?
更具体地说,我想像这样添加随机噪声:ffmpeg version 2.8.17-0ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
。但是,如果我尝试这样做,则在同一输入文件上执行不同的操作会产生相同的噪音。
解决方法
添加all_seed
选项:
ffmpeg -i input.mp4 -vf "noise=alls=20:allf=p+t+u:all_seed=123457" random.mp4
默认值为123457
。您将需要在每次执行时进行更改。也许像这样:
ffmpeg -i input.mp4 -vf "noise=alls=20:allf=p+t+u:all_seed=$(tr -cd [:digit:] < /dev/urandom | head -c 9)" random.mp4
使用hash demuxer进行验证:
ffmpeg -i random.mp4 -f hash -
[…]
SHA256=4e3c698661b0482684d2c38f7c075a4fd8bf46fadc665b4b0f53ff41e7d9266a
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。