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

Posted

技术标签:

【中文标题】带有音频和视频过滤器的 ffplay / ffmpeg 设置表【英文标题】:ffplay / ffmpeg setup table with audio and video filters 【发布时间】:2016-06-29 16:16:06 【问题描述】:

问候,

我想用 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"

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

SHOWVOLUME

ffplay -f lavfi "amovie=input.mka, asplit [a][out1]; [a] showvolume=f=255:b=4:w=720:h=68 [out0]"

EBUR128 响度

ffplay -f lavfi -i "amovie=55.mp4,ebur128=video=1:meter=18 [out0][out1]"

AVECTORSCOPE

 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]"

    如何在一行ffplay中设置上表(音视频)?

    或者,我怎样才能在一行 ffplay 中只设置音频部分?

非常感谢

【问题讨论】:

【参考方案1】:

这是单个 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]"

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

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

【讨论】:

Awesome Mulvya,不幸的是,正如你所说,ffplay 存在性能问题

以上是关于带有音频和视频过滤器的 ffplay / ffmpeg 设置表的主要内容,如果未能解决你的问题,请参考以下文章

音视频学习之ffplay基础命令整理

音视频开发进阶指南

音视频技术之ffplay源码分析-音视频同步

FFMPEG教程 FFmpeg常用基本命令行

ffplay源码剖析(3.2.4 + sdl2):解码

ffplay源码剖析(3.2.4 + sdl2):解码