Сохранение нескольких прямых трансляций в общественном достоянии на диск с помощью ffmpeg/vlc или какого-либо другого ресурса?

#ffmpeg #video-streaming #http-live-streaming

Вопрос:

Я пытаюсь сохранить видео за несколько дней с открытых веб-камер на диск, чтобы я мог запустить на них некоторую аналитику. (например, это видео аэропорта. У меня их несколько сотен, плюс пропускная способность и хранилище не являются проблемой, как бы я сохранил потоки, скажем, на 2-3 дня?

  1. Я попытался написать небольшой фрагмент кода на python, используя pyav (оболочку вокруг ffmpeg), чтобы открыть поток и сохранить ключевые кадры. Но, похоже, связь обрывается примерно через час или около того…
  2. Я изучил ffmpeg -i <some video URL> output.mp4 , но он внезапно завершается без какого-либо сообщения об ошибке.
  3. Я могу воспроизводить видео в vlc, но не уверен, как я могу продолжить сохранение видео.

Есть какие-нибудь идеи?

Ответ №1:

хорошо, не знаю, почему за это проголосовали, чтобы закрыть, но я подумал о том, чтобы предоставить решение/обходной путь, который я придумал для любых других в моей ситуации:

 def save_stream(url):
    try:
        cmd = "youtube-dl -f worst {} --retries infinite --continue --hls-use-mpegts".format(url)
        # print(cmd)
        ydl_process = subprocess.check_call(cmd.split(" "))
        print("[*] launched: ",ydl_process)

    except Exception as e2:
        print("[!] e2: ",e2)
    return
 

Использование youtube-dl для сохранения потока на диск сохраняет его в файл .part. --hls-use-mpegts Флаг важен, поэтому вы можете скопировать .mp4.part файл в другое место и переименовать его, чтобы .mp4 он воспроизводился с помощью vlc или других.