I'm trying to build a form of monitoring that can be superimposed onto a live stream.
Monitor Overlay
ffmpeg -i rtmp://localhost/pool/livestream -filter_complex \
"nullsrc=1024x576[1:v]; \
[0:a]showvolume=v=0:o=1:t=0:f=0.1,drawbox=x=ih-40:y=0:w=40:h=ih[volume]; \
[1:v]drawtext=x=(main_w/2)-(text_w/2):y=text_h:fontsize=30:fontcolor=white:borderw=1:text='Stream Label',scale=-1:-1[label]; \
[label][volume]overlay=x=main_w-40:y=0[output]" \
-map "[output]" -f flv rtmp://localhost/pool/livestream_overlay
What I would like to accomplish is that this stream be superimposed onto the original stream and pushed to a third RTMP endpoint, like this:
ffmpeg -i rtmp://localhost/pool/livestream -i rtmp://localhost/pool/livestream_overlay \
-filter_complex "[0:v][1:v]overlay=shortest=1[output]" \
-f flv rtmp://localhost/pool/livestream_monitor
While the workflow seems to be working, the overlay is not blending (subtracted?) onto the original video:
Actual output
Expected output
Note: codec options have been removed for brevity's sake.
Use
ffmpeg -i rtmp://localhost/pool/livestream -filter_complex \
"[0:a]showvolume=v=0:o=1:t=0:f=0.1,drawbox=x=iw-40:y=0:w=40:h=ih[volume]; \
[0:v]drawtext=x=(W-tw)/2:y=th:fontsize=30:fontcolor=white:borderw=1:text='Stream Label'[label]; \
[label][volume]overlay=x=W-40:y=0[output]" \
-map "[output]" -map 0:a -f flv rtmp://localhost/pool/livestream_monitor
None of the usual FLV codecs support alpha, so in the 2nd command, you would have to perform chroma keying, which is usually subpar in ffmpeg. So, you can do it in the same command.
So after playing around all day, I stumbled across the answer purely by accident.
Simply change nullsrc=1024x576[1:v]
to pad=1024:576:0:0:black[1:v]
. The black background disappears, and the rest remain.
Source: A memory of a documentary long ago about tricks used in broadcasting, talking about how white text on a black background superimposed on film made the black transparent. Hopefully, there's a film buff here that can explain it better
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.