头像
galaxy
帖子: 7
注册时间: 2013-03-28 19:29

ffmpeg非时间轴滤镜并行化探讨

这几天EP想玩Wavelet denoiser,结果发现套上去就降速到0.03fps,就考虑搞并行。
环境是Linux,所以avs的都不行,vp不熟,就ffmpeg了。
目前没处理好帧的时刻,合并是重复第一个输入,然后咱没折腾好,就先贴分派部分了。

owdenoise=8:0.309:0 是可以把jpg文件变小,画面损失不大的。

分派:

代码: 全选

ffmpeg-10bit -ss 24:23 -t 00:01:00 -i 20160331\ Lovelive\ FL\ Day1\ FEED\ 1080i.ts \
-lavfi "bwdif=send_field:tff,mcdeint=fast:tff:10,scale=w=iw:h=ih/2,drawtext='fontfile=arial.ttf:text=%{n}_%{pict_type}_%{pts}:fontcolor=Aqua:fontsize=32',select=n=4:e='mod(n,4)+1'[A][B][C][D]" \
-map '[A]' -f yuv4mpegpipe tcp://localhost:2001?listen \
-map '[B]' -f yuv4mpegpipe tcp://localhost:2002?listen \
-map '[C]' -f yuv4mpegpipe tcp://localhost:2003?listen \
-map '[D]' -f yuv4mpegpipe tcp://localhost:2004?listen
子任务:

代码: 全选

ffmpeg-10bit -i tcp://localhost:2001 -vf owdenoise=8:0.309:0,fps='15000/1001' -f yuv4mpegpipe tcp://localhost:2011?listen
ffmpeg-10bit -i tcp://localhost:2002 -vf owdenoise=8:0.309:0,fps='15000/1001' -f yuv4mpegpipe tcp://localhost:2012?listen
ffmpeg-10bit -i tcp://localhost:2003 -vf owdenoise=8:0.309:0,fps='15000/1001' -f yuv4mpegpipe tcp://localhost:2013?listen
ffmpeg-10bit -i tcp://localhost:2004 -vf owdenoise=8:0.309:0,fps='15000/1001' -f yuv4mpegpipe tcp://localhost:2014?listen
合并:

代码: 全选

ffmpeg-10bit -i tcp://localhost:2011 -i tcp://localhost:2012 -i tcp://localhost:2013 -i tcp://localhost:2014 -lavfi [0:v][1:v][2:v][3:v]interleave=4,fps='60000/1001' \
-pix_fmt yuv420p10le -vcodec libx264 -preset veryslow -x264opts 'crf=23:vbv-maxrate=15000:vbv-bufsize=15000:threads=24:colormatrix=bt709:colorprim=bt709:transfer=bt709' \
-vframes 1600 -f matroska -y FL1s.mkv 2>&1 | tee FL1s.log
结果是,加了fps变化果然没drop了,但会把第一个重复4次。
中间格式可以换matroska。

Mac下只能用命名管道,tcp不行。

回到 “视频编码器 / Video encoder discussion”