[FFmpeg-user] Can't make video filter drawtext accept command from multi media filter zmq

Thomas Seilund tps at netmaster.dk
Mon Jun 22 19:49:02 CEST 2015


Paul B Mahol writes:

> On 6/22/15, Thomas Seilund <tps at netmaster.dk> wrote:
>> Hi All
>>
>> I always get error "38 Function not implemented" when I send command to
>> video filter drawtext.
>>
>> Here is the command I run and the result I get:
>>
>> tps at t420:~/video/test$ echo Parsed_drawtext_1 text AA |
>> /home/tps/data/data/ffmpeg/tools/zmqsend -b tcp://127.0.0.1:5557
>> 38 Function not implemented
>> tps at t420:~/video/test$
>>
>> I run the command while I have this ffmpeg instance running:
>>
>> tps at t420:~/video/test$ ffmpeg -loop 1 -i test.png -filter_complex
>> "zmq=bind_address=tcp\\\://127.0.0.1\\\:
>> 5557,drawtext=text=AA:x=50:y=50:fontfile=/usr/share/fonts/truetype/freefont/
>>
>> FreeMonoBold.ttf"  -f mpegts -c libx264 test.ts
>> ffmpeg version N-69238-g2699a37 Copyright (c) 2000-2015 the FFmpeg
>> developers
>>    built on Apr 23 2015 17:10:30 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
>>    configuration: --enable-gpl --enable-libmp3lame --enable-libvpx --enable-
>>
>> libx264 --enable-version3 --enable-libvorbis --enable-libfreetype --enable-
>>
>> libv4l2 --enable-libfdk-aac --enable-nonfree --enable-libpulse --enable-
>> libzmq
>>    libavutil      54. 17.100 / 54. 17.100
>>    libavcodec     56. 20.100 / 56. 20.100
>>    libavformat    56. 19.100 / 56. 19.100
>>    libavdevice    56.  4.100 / 56.  4.100
>>    libavfilter     5.  8.101 /  5.  8.101
>>    libswscale      3.  1.101 /  3.  1.101
>>    libswresample   1.  1.100 /  1.  1.100
>>    libpostproc    53.  3.100 / 53.  3.100
>> Input #0, png_pipe, from 'scoreboard.png':
>>    Duration: N/A, bitrate: N/A
>>      Stream #0:0: Video: png, pal8, 200x100 [SAR 72:72 DAR 2:1], 25 fps, 25
>>
>> tbr, 25 tbn, 25 tbc
>> File 'test.ts' already exists. Overwrite ? [y/N] y
>> No pixel format specified, yuv444p for H.264 encoding chosen.
>> Use -pix_fmt yuv420p for compatibility with outdated media players.
>> [libx264 @ 0x2d2c4c0] using SAR=1/1
>> [libx264 @ 0x2d2c4c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
>> AVX
>> [libx264 @ 0x2d2c4c0] profile High 4:4:4 Predictive, level 1.1, 4:4:4 8-bit
>> Output #0, mpegts, to 'test.ts':
>>    Metadata:
>>      encoder         : Lavf56.19.100
>>      Stream #0:0: Video: h264 (libx264), yuv444p, 200x100 [SAR 1:1 DAR 2:1],
>>
>> q=-1--1, 25 fps, 90k tbn, 25 tbc
>>      Metadata:
>>        encoder         : Lavc56.20.100 libx264
>> Stream mapping:
>>    Stream #0:0 (png) -> zmq
>>    drawtext -> Stream #0:0 (libx264)
>> Press [q] to stop, [?] for help
>> frame=14512 fps=1948 q=-1.0 Lsize=    2947kB time=00:09:40.40 bitrate=
>> 41.6kbits/s
>> video:351kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
>> muxing overhead: 739.239502%
>>
>>
>>
>> Any help would be very much appreciated
>
> Looking at code command must be reinit and args are normal args you
> usual give to drawtext filter.
>
> But example with drawtext and zmq should really be added to docs.
>
>>
>> Thanks
>>
>> Thomas S
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user


Hi Paul,

Thanks a lot - it works - but it is slow !!

Now I run ffmpeg and pipe to ffplay to see the effect of the command.

I run this ffmpeg command:

tps at t420:~/video/test$ ffmpeg -loglevel debug -loop 1 -i test.png - 
filter_complex "zmq=bind_address=tcp\\\://127.0.0.1\\\: 
5557,drawtext=text=XX:x=50:y=50:fontfile=/usr/share/fonts/truetype/freefont/ 
FreeMonoBold.ttf"  -f mpegts -c libx264 - | ffplay -i -

And I run this command to change the drawtext filter:

tps at t420:~/video/test$ echo Parsed_drawtext_1 reinit text=CC |  
/home/tps/data/data/ffmpeg/tools/zmqsend -b tcp://127.0.0.1:5557

There is a delay of 10+ seconds from I run the command until I see the  
effect in ffplay.

I had hoped for instant effect - can I do something to get instant effect ?

Thanks for you help

Thomas S


More information about the ffmpeg-user mailing list