带有音频和视频过滤器的 ffplay / ffmpeg 设置表

Jmv*_*Jmv 2 audio video waveform ffmpeg media-player

问候 ,

我想用 ffplay 创建一个表,显示音频和视频监控,来自这样的信号:

ffplay

不幸的是,我只能做视频部分:

ffplay  -i bar.mxf -vf "split=4[a][b][c][d],[d]vectorscope=m=color3:g=color[dd],[a]waveform=m=1:d=0:r=0:c=7[aa],\[b]waveform=m=0:d=0:r=0:c=7[bb],[c][aa]vstack[V],[bb][dd]vstack[V2],[V][V2]hstack"
Run Code Online (Sandbox Code Playgroud)

我不能把音频过滤器和视频过滤器放在一起,实际上我什至不能做音频部分,我有独立的音频过滤器,但我不能把它放在一起。

节目量

ffplay -f lavfi "amovie=input.mka, asplit [a][out1]; [a] showvolume=f=255:b=4:w=720:h=68 [out0]"
Run Code Online (Sandbox Code Playgroud)

EBUR128 响度

ffplay -f lavfi -i "amovie=55.mp4,ebur128=video=1:meter=18 [out0][out1]"
Run Code Online (Sandbox Code Playgroud)

视镜

 ffplay -f lavfi "amovie=input.mp3, asplit [a][out1]; 
    [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]"
Run Code Online (Sandbox Code Playgroud)
  1. 如何在一行ffplay中设置上表(音频和视频)?

  2. 或者,我如何在一行 ffplay 中只设置音频部分?

非常感谢

Gya*_*yan 7

这是单个 ffplay 命令中的全部要求:

ffplay -f lavfi  
         "amovie=in.mp4,asplit=3[sv][eb][av];
          [sv]showvolume=b=4:w=720:h=68[sv-v];
          [eb]ebur128=video=1:size=720x540:meter=18[eb-v][out1];
          [av]avectorscope=s=720x540:zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7[av-v];
          [sv-v][eb-v][av-v]vstack=3[1c];
          movie=in.mp4,split=4[v][wf][wfc][vs];
          [wf]waveform=m=1:d=0:r=0:c=7[wf-vus];
          [wf-vus][v]scale2ref=iw:1220-ih[wf-va][sig];
          [wf-va]setsar=1[wf-v];
          [wfc]waveform=m=0:d=0:r=0:c=7,scale=610x610,setsar=1[wfc-v];
          [vs]vectorscope=m=color3:g=color,scale=610x610,setsar=1[vs-v];
          [sig][wf-v]vstack[2c];
          [wfc-v][vs-v]vstack[3c];
          [1c][2c][3c]hstack=3,scale=1280:-1[out0]"
Run Code Online (Sandbox Code Playgroud)

堆叠过滤器的基本原理是它们堆叠的尺寸应该相同,因此根据需要应用了比例过滤器。scale2ref 用于中间波形窗口,以便水平堆叠时的高度与 的高度[2c]匹配[1c]。您必须确保视频的高度小于 1220。如果不是,请缩放[v]并将其提供给 scale2ref。

我建议您提供较小尺寸的过滤器和比例,否则您将无法接近实时速度。