Как я могу сохранять записи VoD без остановки потоковой передачи?

Как я могу остановить запись с интервалом, не останавливая поток, чтобы сохранить VoD на Ant Media Server в моих источниках потока и IP-камерах?


person Selim Emre Toy    schedule 27.01.2021    source источник


Ответы (1)


Вы можете добиться этого с помощью скрипта Python. Предполагая, что вы установили python3 и pip. Следующий сценарий останавливает и снова запускает запись через определенные пользователем интервалы:

import sys
import sched, time
try:
    import requests
    print("requests library already installed!")
except ImportError:
    try:
        import pip
        print("requests library is being installed")
        pip.main(['install', '--user', 'requests'])
        import requests
    except ImportError:
        print("pip is not installed, so it needs to be installed first to proceed further.\nYou can install pip with the following command:\nsudo apt install python3-pip")
slp=sched.scheduler(time.time,time.sleep)
def startStopRecording(s):
    print("Stopping the recording of "+sys.argv[2])
    response=requests.put(sys.argv[1]+"/rest/v2/broadcasts/"+sys.argv[2]+"/recording/false")
    if response.json()["success"]:
        print("recording of "+sys.argv[2]+" stopped successfully")
        print(response.content)
        print("starting the recording of "+sys.argv[2])
        response=requests.put(sys.argv[1]+"/rest/v2/broadcasts/"+sys.argv[2]+"/recording/true")
        print(response.content)
        if response.json()["success"]:
            print("recording of "+sys.argv[2]+" started successfully")
            s.enter(int(sys.argv[3]),1,startStopRecording,(s,))
        else:
            print("Couldn't start the recording of "+sys.argv[2])
            print("content of the response:\n"+response.content)
            sys.exit()

    else:
        print("Couldn't stop the recording of "+sys.argv[2])
        print("content of the response:")
        print(response.content)
        sys.exit()
    
slp.enter(int(sys.argv[3]),1,startStopRecording,(slp,))
slp.run()

Пример использования будет таким: python3 file.py https: // domain / {Application} streamId interval

Первый параметр - это домен, который вы собираетесь использовать, например: https://someexample.com:5443/WebRTCAppEE

Второй параметр - это идентификатор потока, который вы хотите использовать. Бывший. поток123.

Третий параметр - это продолжительность интервала, в котором вы хотите возобновить запись. Единица длительности - секунды. Таким образом, 60 будет равно 1 минуте.

person Enes Kuluk    schedule 27.01.2021