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

Paul B Mahol onemda at gmail.com
Mon Jun 22 20:24:13 CEST 2015


On 6/22/15, Thomas Seilund <tps at netmaster.dk> wrote:
> 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 ?

Perhaps encoding and drawing text is not realtime at all? Try encoding
with -preset ultrafast
>
> Thanks for you help
>
> Thomas S
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>


More information about the ffmpeg-user mailing list