Я пытаюсь создать приложение с использованием библиотеки ffmpeg, и это приложение будет масштабировать видео и показывать полосы громкости (с помощью фильтра showvolume) поверх масштабированного видео.
Когда я использую команду ffmpeg в то время, она работает как шарм, но почему-то я не могу заставить ее работать в программе c, пожалуйста, помогите мне решить эту проблему
Я пытаюсь установить сложный фильтр двумя разными способами:
- с использованием функции avfilter_graph_parse2
- вручную связать каждый фильтр
Метод 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
Команда CLI
ffmpeg:
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
Заранее спасибо.