Как скачать видео со звуком?

Мне нужно скачать видео с сервера (API). Сейчас у меня есть что-то вроде этого:

def download_video(url, where_to_store):
   response = requests.get(url, stream=True)
   if response.status_code == 200:
      with open(f"{local_video_path}", "wb") as file:
           for chunk in response.iter_content(chunk_size=1024*1024):
               file.write(chunk)
   else:
      return response.status_code

Этот код хорошо загружает видео, но не включает звук. Я пробовал это с разными видео, но результат тот же. Звук отдельно скачивать?

Большое спасибо!

Я не вижу ничего плохого в вашем коде. requests не имеет логики, позволяющей отделить видео от звука. Используйте, например. эту ссылку, чтобы убедиться, что ваш код работает: sample-videos.com/video321/mp4/720/big_buck_bunny_720p_2mb.m‌​p4 Если вы поделитесь реальным URL-адресом, с которым у вас возникли проблемы, это может помочь нам решить эту проблему. Или кричать, если файл по указанному мною URL приходит без звука.

Lukasz Tracewski 21.06.2024 15:45

Аудио встроено в файл mp4, как и другие видеоформаты. Скорее всего, проблема в вашем воспроизводящем устройстве. Может быть, просто забыть, что к аудиоразъему подключены наушники.

Ed_ 24.06.2024 23:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
125
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

«Нужно ли мне загружать звук отдельно?»

Скорее всего да. Некоторые серверы предлагают разные разрешения видео (выбор качества), и такие серверы обычно хранят отдельные файлы для аудио и видео. Это позволяет использовать файлы меньшего размера, поскольку они не повторяют одни и те же аудиоданные для каждого отдельного видеофайла.

Например: Youtube не сохраняет звук в видео 1080p. Вы можете «попробовать это с разными видео», но ни один файл 1080p по-прежнему не будет содержать звука. Возможно, ваш сервер/API делает то же самое.

Самый простой способ, который вы, возможно, заметили, — это использовать интернет-браузер для загрузки и воспроизведения видео и программу записи экрана, способную записывать экран и звук не только с микрофона, но и с любого другого источника звука, например, используемого видео.

Другими словами, для достижения желаемого эффекта нет необходимости пытаться написать собственную программу на любом языке программирования, и преимущество этого подхода заключается в том, что любое видео, которое вы можете запустить в своем интернет-браузере (что обычно превосходит возможности отдельных библиотек, поскольку он объединяет все доступные, чтобы предоставить вам наилучшие возможности работы в Интернете) становится доступным для загрузки в виде файла.

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

Мне нужно это автоматизировать, потому что я создаю программу pyqt, которая будет просматривать список URL-адресов, загружать каждое видео, а затем воспроизводить каждое из них.

John Carter 26.06.2024 20:38

@JohnCarter: В какой системе ты работаешь? Могу помочь только с Linux (MS Windows не поддерживаю). Проблема со скачиванием часто заключается в том, что серверы отказываются скачивать, когда запрос не поступает от интернет-браузера. Без URL-адреса трудно догадаться, в чем заключается реальная проблема... отсюда и такой общий ответ. Есть верные способы обмануть сервер, и я хочу помнить, что в stackoverflow есть ответы, как это сделать, отправив соответствующие данные вместе с запросом, а затем загрузив фрагмент за фрагментом, как это делает интернет-браузер во время воспроизведения видео.

oOosys 26.06.2024 20:43

URL: api.olhar.media/videos/sample720_2.mp4

John Carter 26.06.2024 20:47

Используя ваш код и URL-адрес, я получаю видео, которое воспроизводится со звуком... Предлагаю вам попробовать другой видеоплеер. Видеосервер поддерживает загрузку в интерфейсе видеоплеера в браузере, поэтому нет необходимости обманывать сервер, и загрузка происходит со звуком, встроенным в видеофайл.

oOosys 26.06.2024 20:57

ТЫ ГЕНИЙ! Я попробовал воспроизвести видео в другом плеере и знаете что? Работает! Глупо с моей стороны, но я вам очень благодарен за помощь!

John Carter 26.06.2024 21:05

Другие вопросы по теме