FFMPEG: altera a entrada sem interromper o processo

0

como eu posso mudar a entrada no ffmpeg sem parar o processo no linux Debian 9? im user decklink input e eu preciso mudar para a entrada do arquivo mp4.

ffmpeg -f decklink -i 'DeckLink Mini Recorder' -vf setpts=PTS-STARTPTS -pix_fmt uyvy422 -s 1920x1080 -r 25000/1000 -f decklink 'DeckLink Mini Monitor'
    
por admin883 11.07.2018 / 00:23

2 respostas

1

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)

    
por 20.07.2018 / 22:43
0

Hmmm, não consigo entender sua pergunta muito bem ...

Se você está tendo problemas em usar o DeckLink e o ffmpeg, esse website pode ser útil:

link

link

Se você está tentando mudar de um DeckLink para uma câmera ou outro dispositivo de gravação, então eu tenho medo de dizer que você precisará codificar um "switcher" (provavelmente, se estiver fluindo, o fluxo irá parar). Se você precisar de alguma ajuda com o código de e-mail me! (Eu não tenho reputação suficiente para comentar)

    
por 11.07.2018 / 03:03