FFMPEG: 프로세스를 중단하지 않고 입력 변경

FFMPEG: 프로세스를 중단하지 않고 입력 변경

프로세스를 중지하지 않고 Linux Debian 9에서 ffmpeg의 입력을 변경하는 방법은 무엇입니까? 저는 Decklink 사용자 입력이고 파일 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'

답변1

이 답변을 기대하는 다른 사람을 위해 나는 다음 솔루션을 사용했습니다(python 및 CV2 사용).

1단계: 로컬에서 실시간으로 카메라(또는 다른 ffmpeg 입력)를 실행합니다.

ffmpeg -i /dev/video0 -b 50k -r 20 -s 720x480 -f mpegts udp://127.0.0.1:2000 

2단계: 표시하려는 광고 또는 동영상의 해상도를 입력으로 선택하고 가장 중요한 것은 .3gp 동영상 파일로 저장하는 것입니다. 3단계: .3gp 파일이 있는 디렉터리에 switcher.py 파일을 작성합니다.

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:])

5단계: 광고 이름과 출력을 사용하여 switcher.py를 실행합니다.

python switcher.py ad.3gp| ffplay -f rawvideo -pixel_format bgr24 -video_size 720x480 -i - 

6단계: 광고를 표시하려면 "Esc"를 클릭하세요!

화면 값을 변경하는 것을 잊지 마세요!

내가 다른 사람을 도왔기를 바랍니다! (아마도 이 글에 약간의 수정이 있을 것입니다)

답변2

흠, 질문이 잘 이해가 안 되네요...

DeckLink 및 ffmpeg를 사용하는 데 문제가 있는 경우 다음 사이트가 유용할 수 있습니다.

https://www.ffmpeg.org/ffmpeg-devices.html#decklink

https://trac.ffmpeg.org/wiki/Capture/Blackmagic

DeckLink에서 카메라나 기타 녹화 장치로 전환하려는 경우에는 "스위처"를 작성해야 합니다(스트리밍하는 경우 스트리밍이 중지될 수도 있음). 코딩에 도움이 필요하시면 이메일을 보내주세요! (댓글을 달기에는 평판이 충분하지 않습니다)

관련 정보