ffmpeg复杂过滤器初始化中出现错误

时间:2019-03-12 06:25:40

标签: c linux ffmpeg

我正在尝试使用ffmpeg库构建应用程序,该应用程序将缩放视频并在缩放后的视频上显示音量条(使用showvolume过滤器)。

当我当时使用ffmpeg命令时,它的作用就像魅力,但是以某种方式无法使其在c程序中起作用,请帮助我解决此问题

我试图通过两种不同的方法设置复杂的过滤器:

  1. 使用avfilter_graph_parse2函数
  2. 手动链接每个过滤器

方法1错误:

[Parsed_showvolume_0 @ 0x1aca580] Format change is not supported Error while feeding the filtergraph

output screenshot

filter graph

方法2错误:

[afifo @ 0x9cd880] Format change is not supported Error while feeding the filtergraph

output screenshot

filter graph

C代码: main.c file

ffmpeg版本:

ubuntu@ubuntu-VirtualBox:~/eclipse-workspace/compexFilterTest/Debug$ ffmpeg -version
ffmpeg version git-2018-07-11-bd8a5c6 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.1) 20160609
configuration: --enable-gpl --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 --enable-pic --enable-libfreetype --enable-libfdk-aac --enable-openssl --enable-shared --enable-libass --enable-libvpx --enable-libx265 --enable-libtwolame
libavutil      56. 18.102 / 56. 18.102
libavcodec     58. 21.104 / 58. 21.104
libavformat    58. 17.101 / 58. 17.101
libavdevice    58.  4.101 / 58.  4.101
libavfilter     7. 25.100 /  7. 25.100
libswscale      5.  2.100 /  5.  2.100
libswresample   3.  2.100 /  3.  2.100
libpostproc    55.  2.100 / 55.  2.100

ffmpeg CLI命令:

ffmpeg -loglevel 40 -i test.ts  -filter_complex "[0:a]afifo,showvolume=w=240:h=20:o=1:f=0.50:r=25[vol0];nullsrc=size=320x240[base1];[0:v]fifo,setpts=PTS-STARTPTS,scale=320x240[w0h0];[w0h0][vol0]overlay=eval=0:x=280[w0h0a];[base1][w0h0a]overlay=shortest=1:eval=0" -vcodec h264 -profile:v main -level 4 -metadata service_provider=testScreenProvider  -metadata service_name=testScreen  -f mpegts -y test123.ts

谢谢。

0 个答案:

没有答案