random - FFMpeg random 是否会为连续执行生成相同的伪随机数序列?
问题描述
例如,如果我执行命令两次:
ffmpeg -i input.mp4 -vf geq=r='random(1)*255':g='random(1)*255':b='random(1)*255' -strict -2 output.mp4
对于同一个源文件,我有相同的输出文件。为什么?我想获得不同的输出文件。
测试配置:
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
我想那是因为随机化器的起始值是相同的。ffmepg 有 srand 之类的功能吗?
更具体地说,我想像这样添加随机噪声:noise=alls=20:allf=p+t+u
. 但是如果我尝试这样做,我会在同一个输入文件上的不同执行中得到相同的噪音。
解决方案
添加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
请参阅噪声过滤器文档。
推荐阅读
- python - 类型错误:open_file() 缺少 1 个必需的位置参数:'self'
- java - 检查两个 int 数组是否有重复元素,并从中提取重复元素之一
- python - 在 SQlite 中更改数据时出现错误;Python
- python - 从特定列中删除具有异常值的行
- python - 发生异常:TypeError 无法解压不可迭代的 NoneType 对象
- c - 为什么可以重新定义 C 库函数?
- php - 问题:当我更改文本区域的内容时,无法更新 db 值类型文本
- python - FieldError django
- java - 使用@Autowire 注入 bean 后的空值
- asp.net - 在 ASP.NET Core MVC 中使用唯一的电子邮件或唯一的用户名注册