Skip to content

Instantly share code, notes, and snippets.

@nico-lab
nico-lab / ffmpeg で指定した3カ所にノイズを載せる
Last active December 25, 2019 09:07
ffmpeg で指定した3カ所にノイズを載せる
ffplay -f lavfi -i smptebars
-vf "split=5[0][1][2][3][4];[0]colorkey=0x00bc00,alphaextract[0a];\
[1]colorkey=0x0000bd,alphaextract[1a];\
[2]colorkey=0xbcbd00,alphaextract[2a];[0a][1a]blend=all_mode=and[01];\
[01][2a]blend=all_mode=and,lutrgb=val:val:val:if(val\,0\,1)*255[012];\
[3]noise=alls=80:allf=t+u[3a];[3a][012]alphamerge[0123];[4][0123]overlay"
@nico-lab
nico-lab / ffmpeg で中央のロゴ周りの緑色(0x003900)に smartblur をかける
Last active December 25, 2019 09:11
ffmpeg で中央のロゴ周りの緑色(0x003900)に smartblur をかける
ffplay -rtbufsize 100MB \
-f dshow -pixel_format bgr0 -video_size 640x360 \
-i video="SCFF DirectShow Filter" \
-vf "format=rgb24,split=3[a][b][c];\
[a]colorkey=0x003900,alphaextract,colorkey=white,alphaextract[a1];\
[b]smartblur[noise];[noise][a1]alphamerge[alpha];[c][alpha]overlay"
@nico-lab
nico-lab / ffmpeg で crop したところにフィルタを当てる
Last active December 25, 2019 09:12
ffmpeg で crop したところにフィルタを当てる
ffplay -rtbufsize 100MB \
-f dshow -pixel_format bgr0 -video_size 640x360 \
-i video="SCFF DirectShow Filter" \
-vf "format=rgb24,split[a][b];\
[a]crop=128:64:256:148,noise=alls=80:allf=t+u[a1];\
[b][a1]overlay=256:148"
@nico-lab
nico-lab / メインの動画に背景の動画をクロマキー合成する
Last active December 25, 2019 09:13
メインの動画に背景の動画をクロマキー合成する
ffmpeg -i main.mp4 -i back.mp4 \
-filter_complex "[0:0]format=yuv420p,split=2[a][b];\
[a]colorkey=white:0.4,alphaextract,colorkey=black,alphaextract[a1];\
[1:0][a1]alphamerge[alpha];[b][alpha]overlay" -acodec copy out.mp4
ffplay -i main.mp4 \
-vf "format=yuv420p,split=2[a][b];\
[a]colorkey=white:0.4,alphaextract,colorkey=black,alphaextract[a1];\
movie=back.mp4[1:0];[1:0][a1]alphamerge[alpha];[b][alpha]overlay"
@nico-lab
nico-lab / under 720p histogram_1
Last active August 29, 2015 14:24
levels と waveform を表示する(720p未満)。[d]で比較するフィルタを当てる
ffplay -i input -vf scale=640:-1,split=4[a][b][c][d];[a]pad=2*(iw+256):616:256:0[a1];\
[b]histogram=mode=levels[b1];[c]histogram=mode=waveform:waveform_mode=column,scale=iw:276[c1];\
[d]smartblur,split=3[e][f][g];[e]histogram=mode=levels[e1];\
[f]histogram=mode=waveform:waveform_mode=column,scale=iw:276[f1];\
[a1][b1]overlay[ab];[ab][c1]overlay=256:360[abc];[abc][g]overlay=256*2+640:0[abcg];\
[abcg][e1]overlay=256+640:0[abceg];[abceg][f1]overlay=256*2+640:360
@nico-lab
nico-lab / under 720p histogram_2
Created July 10, 2015 12:49
levels, color2 と waveform を表示する(720p未満)。[g]で比較するフィルタを当てる
ffplay -i input -vf scale=640:-1,split=7[a][b][c][d][e][f][g];[a]pad=2*iw+2*384:ih+212:384:0[a1];\
[b]histogram=mode=levels,crop=256:212:0:0[b1];[c]histogram=mode=levels,crop=256:212[c1];\
[d]histogram=mode=levels,crop=256:212:0:ih[d1];[e]histogram=mode=color2[e1];\
[f]histogram=mode=waveform,scale=384:360[f1];[g]smartblur,split=6[h][i][j][k][l][m];\
[h]histogram=mode=levels,crop=256:212:0:0[h1];[i]histogram=mode=levels,crop=256:212[i1];\
[j]histogram=mode=levels,crop=256:212:0:ih[j1];[k]histogram=mode=color2[k1];\
[l]histogram=mode=waveform,scale=384:360[l1];[a1][e1]overlay=0:360[ae];[ae][b1]overlay=256:360[abe];\
[abe][c1]overlay=256*2:360[abce];[abce][d1]overlay=256*3:360[abcde];[abcde][f1]overlay[af];\
[af][k1]overlay=256*4:360[ak];[ak][h1]overlay=256*5:360[ah];[ah][i1]overlay=256*6:360[ai];\
[ai][j1]overlay=256*7:360[aj];[aj][l1]overlay=1024:0[al];[al][m]overlay=1024+384:0
@nico-lab
nico-lab / over 720p histogram
Last active August 29, 2015 14:24
levels, color2 と waveform を表示する(720p以上)。[e]で比較するフィルタを当てる
ffplay -i input -vf scale=1280:-1,split=5[a][b][c][d][e];[a]pad=2*iw+2*256:882:256:0[a1];\
[b]histogram=mode=levels[b1];[c]histogram=mode=color2[c1];\
[d]histogram=mode=waveform:waveform_mode=column,scale=iw:882-ih[d1];[e]smartblur,split=4[f][g][h][i];\
[f]histogram=mode=levels[f1];[g]histogram=mode=color2[g1];\
[h]histogram=mode=waveform:waveform_mode=column,scale=iw:882-ih[h1];[a1][b1]overlay[ab];\
[ab][c1]overlay=0:636[abc];[abc][d1]overlay=256:720[abcd];[abcd][f1]overlay=256+1280:0[abcdf];\
[abcdf][g1]overlay=256+1280:636[abcdfg];[abcdfg][h1]overlay=2*256+1280:720[abcdfgh];[abcdfgh][i]overlay=2*256+w:0
@nico-lab
nico-lab / 明るい部分と暗い部分に同時にフィルタを当てる
Last active September 18, 2015 15:19
明るい部分と暗い部分に同時にフィルタを当てる
ffplay -i input -vf format=yuv420p,split=5[a][b][c][x][y];\[a]format=gray,\
lutrgb=r="if(val\, if(gt(val\,50)\,val\)\,0)":g="if(val\, if(gt(val\,50)\,val\)\,0)":b="if(val\, if(gt(val\,50)\,val\)\,0)"[a1];\
[b]unsharp[b1];[b1][a1]alphamerge[alpha1];[c][alpha1]overlay[o1];[x]format=gray,\
lutrgb=r="if(val\, if(lt(val\,65)\,255-val\)\,0)":g="if(val\, if(lt(val\,65)\,255-val\)\,0)":b="if(val\, if(lt(val\,65)\,255-val\)\,0)"[x1];\
[y]smartblur[y1];[y1][x1]alphamerge[alpha2];[o1][alpha2]overlay
@nico-lab
nico-lab / Y チャンネルを比較する
Created September 4, 2015 12:23
Y チャンネルを比較する
ffplay input -vf split[a1][a2];[a1]histogram=mode=levels,crop=256:212:0:0,split[b1][b2];\
[a2]unsharp=3:3:0.5:3:3:0.5:0,histogram=mode=levels,crop=256:212:0:0,split=3[d1][d2][d3],\
[b1][d2]hstack[bd];[b2][d1]blend=c0_mode=difference128[bc],[d3][bc]hstack[bcd],\
[bd][bcd]vstack,drawgrid=0:0:32:53:c=red
@nico-lab
nico-lab / U チャンネルを比較する
Created September 4, 2015 12:24
U チャンネルを比較する
ffplay input -vf split[a1][a2];[a1]histogram=mode=levels,crop=256:212:0:212,split[b1][b2];\
[a2]unsharp=3:3:0.5:3:3:0.5:0,histogram=mode=levels,crop=256:212:0:212,split=3[d1][d2][d3],\
[b1][d2]hstack[bd];[b2][d1]blend=c0_mode=difference128[bc],[d3][bc]hstack[bcd],\
[bd][bcd]vstack,drawgrid=0:0:32:53:c=red