我正在尝试使用ffmpeg库构建应用程序,该应用程序将缩放视频并在缩放后的视频上显示音量条(使用showvolume过滤器)。
当我当时使用ffmpeg命令时,它的作用就像魅力,但是以某种方式无法使其在c程序中起作用,请帮助我解决此问题
我试图通过两种不同的方法设置复杂的过滤器:
方法1错误:
[Parsed_showvolume_0 @ 0x1aca580] Format change is not supported
Error while feeding the filtergraph
方法2错误:
[afifo @ 0x9cd880] Format change is not supported
Error while feeding the filtergraph
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
谢谢。