Para qualquer outra pessoa ansiosa por essa resposta, cheguei à seguinte solução (usando python e CV2):
ETAPA 1: Execute sua câmera (ou qualquer outra entrada ffmpeg) ao vivo localmente
ffmpeg -i /dev/video0 -b 50k -r 20 -s 720x480 -f mpegts udp://127.0.0.1:2000
PASSO 2: Ter o anúncio ou vídeo que você deseja exibir com a resolução como sua entrada e, mais importante, salvo como um arquivo de vídeo .3gp. PASSO 3: Escreva um arquivo switcher.py no mesmo diretório que seu arquivo .3gp
import cv2
import sys
def main(argv):
adName = argv[0]
cap = cv2.VideoCapture("udp://127.0.0.1:2000")
showAd = 2
while cap.isOpened():
if showAd == 1:
cap.release()
del cap
cap = cv2.VideoCapture(adName)
showAd = 0
if showAd == 2:
cap.release()
del cap
cap = cv2.VideoCapture("udp://127.0.0.1:2000")
showAd = 0
ret, frame = cap.read()
try:
height, width, channels = frame.shape
except:
cap.release()
del cap
cap = cv2.VideoCapture("udp://127.0.0.1:2000")
key = cv2.waitKey(33)
if key==27:
showAd = 1
if key==32:
showAd = 2
if(ret):
sys.stdout.write(frame.tostring())
cv2.imshow("frame",frame)
cap.release()
if __name__ == "__main__":
main(sys.argv[1:])
PASSO 5: execute o switcher.py com o nome do seu anúncio e depois com a sua saída.
python switcher.py ad.3gp| ffplay -f rawvideo -pixel_format bgr24 -video_size 720x480 -i -
PASSO 6: Clique em "Esc" para mostrar seu anúncio!
LEMBRE-SE DE MUDAR OS VALORES DA TELA!
Espero ter ajudado alguém! (Provavelmente farei algumas edições neste post)