用于场景变换的FFmpeg滤镜


1

刚进入FFmpeg,并希望使用过滤器进行一些长时间的视频质量/稳定性测试。我必须将场景变换滤波器设置为非常低的差值(0,000005),以从不包含其他已知运动的视频序列中检测单帧已知的小伪像。我在多个不同位置的几个帧的每一个中插入了一个2像素×8像素的小人工制品,以提供检测确实起作用的控制。可以通过被测系统在一小时的循环内容中成功检测到未压缩视频中的少数插入帧,但必须对捕获的文件进行批量过滤。轻微压缩的内容也可以,比如ProRes - 但是任何长GOP序列都会淹没我们想要确保的小工件(除了我们为“控制”目的而插入的那些......)

我的问题是: 有没有一种简单的方法可以自动化这个想法来处理连续视频而不是批量过滤捕获的文件? 现在我捕获每个检测到的错误承载框架的.png,以确保我检测到的是我插入的内容 - 不多也不少......

提前感谢任何指针

更新:我们设计了一个基于流的测试,使用Decklink INPUT端口(HDMI one ...)将原始视频采集到检测场景变化的FFMPEG滤波器中。检测器的阈值设置得相当低(0.000005),这允许其绝对差值和滤波器捕获少至一帧持续时间和仅几个像素的小图像伪像。我们在HyperDeck上运行的ProRes循环播放非运动蓝色场图像序列,每帧有一到五个白点或黑点,并且这种已知异常帧的注入仅在每一小时长的循环中发生一次,作为验证过滤器的控件正在按预期工作。该流通过我们的测试产品,然后通过Decklink和FFMPEG过滤器组合进行分析。我们当然正在观察我们知道注入的任何缺失的参考异常帧,和/或任何其他检测到的帧指示我们的测试系统中的处理错误。我们可以仔细检查存储的.png帧以查看任何异常的性质。

一切都正常运行,并且对于长时间的测试运行是稳定的,但是如果我们停止分析并尝试重新启动似乎存在问题。也许Decklink中的某些东西没有正确初始化。目前,唯一的解决方法是关闭包含Decklink的工作站,等待电源完全放电,然后重新上电并重新启动FFMPEG过滤应用程序。

有谁知道这个起始值是如何初始化的?它是在Decklink中设置还是在FFMPEG中设置?

这是ffmpeg中的命令窗口在我们尝试在没有断电步骤的情况下再次启动该过程时显示的内容:

C:\ Users \ cvandusen> ffmpeg -f dshow -video_size 1280x720 -rtbufsize 702000k -framerate 60 -i video =“Decklink Video Capture”-vf“select = gt(scene \,0.000005)” - vsync vfr test2%03d.png

ffmpeg版本N-89803-g856b7cae9f版权所有(c)2000-2018 FFmpeg开发人员使用gcc 7.2.0(GCC)配置构建:--enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora - -enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib - -enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-amf --enable-cuda --enable-cuvid --enable- d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx libavutil 56. 7.100 / 56. 7.100 libavcodec 58. 9.100 / 58. 9.100 libavformat 58。3.100 / 58. 3.100 libavdevice 58. 0.100 / 58. 0.100 libavfilter 7. 11.101 / 7. 11.101 libswscale 5. 0.101 / 5. 0.101 libswresample 3. 0.101 / 3. 0.101 libpostproc 55. 0.100 / 55. 0.100输入#0,dshow ,来自'video = Decklink Video Capture':持续时间:N / A,开始:71582788.364437,比特率:N / A流#0:0:视频:rawvideo(HDYC / 0x43594448),uyvy422(tv),1280x720,60 fps,60 tbr,10000k tbn,10000k tbc流映射:流#0:0 - >#0:0(rawvideo(native) - > png(native))按[q]停止,[?]获取帮助输出#0,image2,到'20180215pm%03d.png':元数据:编码器:Lavf58 .3.100流#0:0:视频:png,rgb24,1280x720,q = 2-31,200 kb / s,60 fps,60 tbn,60 tbc元数据:编码器:Lavc58.9.100 png帧= 0 fps = 0.0 q = 0.0 Lsize = N / A时间= 00:00:00.00比特率= N / A速度= 0x视频:0kB音频:0kB字幕:0kB其他流:0kB全局标头:0kB复用开销:未知输出文件为空,没有编码(如果使用,检查-ss / -t / -frames参数)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.