Михаил добрый день! Спасибо за это видео Все сделал как вы говорили, все работает, но есть один нюанс С маленькими видео все работает как локально так и на сервере Но когда пробую стримить файл в 2 гб, локально все работает а на сервере выдает ошибку Сервер Ubuntu 22.04 + Nginx Подскажите пожалуйста как можно регить эту проблему?
Расскажи о том, как сделать радиосервис на Django. Пробовал делать, но не получилось как-то) Думаю это будет интересно. Знаю, есть уже готовые решения, например модуль nginx, и тд но хочется понять - можно ли что-то похожее на стриминг аудио плейлиста в прямом эфире сделать на джанго
Спасибо, то что искал ! Один только вопрос, не будет ли memory leak"ов если открывать файлы без контекстного мендежра типо with open ? Правильно ли я понимаю, пока файл не доигрался в браузере - не дошло до строчки if hasattr(file, 'close'): file.close() - файл остается открытм ?
Спасибо за видео. Но подскажите пожалуйста у меня вот такая ошибка когда открываю стрим видео (все работает на клиенте), я пытаюсь с 0 повторить все за вами, грубо говоря, но выдает ошибку ниже... Что это может быть? Я просто даже не понимаю как ее гуглить, нет никакой полезной информации в сообщении ошибки Traceback (most recent call last): File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 683, in process_request_thread self.finish_request(request, client_address) File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 747, in __init__ self.handle() File "/Users/artemkashipov/Documents/HomeTaskFR/venv/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 171, in handle self.handle_one_request() File "/Users/artemkashipov/Documents/HomeTaskFR/venv/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 179, in handle_one_request self.raw_requestline = self.rfile.readline(65537) File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socket.py", line 704, in readinto return self._sock.recv_into(b) ConnectionResetError: [Errno 54] Connection reset by peer
Привет!Что делать если не работает перемотка видео?У меня свой плеер, но даже на обычном от гугла не работает.Пробывал preload="auto" и metadata но не работает.Может знаешь что делать?Искал в гугле и чат-гпт, в гугле ну очень мало таких проблем а чат-гпт выдал какой-то высер про то что нужно все проверить и тд.Буду рад если поможешь.
Привет. А есть ли возможность логировать все действия пользователя в плеере? Например, увеличение или уменьшение уровня громкости, скорости видео, поставка на паузу.
Большое спасибо! Помог с решением проблемы, люблю)
Всё отлично работает. Всё ясно и понятно. Давно искал что-то подобное для своего сайта. Спасибо!
Присоединяюсь к тем, кто просит у Вас django аудиоплеер ...
Отличный пример
Шикарно!
Видео топ, спасибо тебе. Но есть вопрос - есть ли возможность добавить другие форматы воспроизведения помимо mp4, например mkv?
Есть
добрый день,
как убрать черные края в проигрывателе? при вертикальном видео
Михаил, хотел у вас спросить, а видеоплеер для сайтов обчыно бэкенд программисты делают или фронтенд?
То что в браузере видим, фронты.
@@DjangoSchool Получается, что нужен и бэк и фронт, одним не обойтись? То есть, нельзя взять и вставить JS код, нужно еще и бэкенд к плееру написать?
Круто
Михаил добрый день! Спасибо за это видео
Все сделал как вы говорили, все работает, но есть один нюанс
С маленькими видео все работает как локально так и на сервере
Но когда пробую стримить файл в 2 гб, локально все работает а на сервере выдает ошибку
Сервер Ubuntu 22.04 + Nginx
Подскажите пожалуйста как можно регить эту проблему?
Спасибо)
смотрим на ютубе, как сделать ютуб)
Спасибо
Расскажи о том, как сделать радиосервис на Django. Пробовал делать, но не получилось как-то) Думаю это будет интересно.
Знаю, есть уже готовые решения, например модуль nginx, и тд но хочется понять - можно ли что-то похожее на стриминг аудио плейлиста в прямом эфире сделать на джанго
Отличная идея
А можно ссылку на файлы из папки static проекта? В репозитории на github их почему-то нет. Спасибо.
Добавил статику в репозиторий
Спасибо, то что искал ! Один только вопрос, не будет ли memory leak"ов если открывать файлы без контекстного мендежра типо with open ? Правильно ли я понимаю, пока файл не доигрался в браузере - не дошло до строчки if hasattr(file, 'close'):
file.close() - файл остается открытм ?
Нет, можно же сделать так чтобы файл закрывать и открывать при повторном запросе
amazing )
Теперь ждём Web RTC
Спасибо за видео.
Но подскажите пожалуйста у меня вот такая ошибка когда открываю стрим видео (все работает на клиенте), я пытаюсь с 0 повторить все за вами, грубо говоря, но выдает ошибку ниже... Что это может быть? Я просто даже не понимаю как ее гуглить, нет никакой полезной информации в сообщении ошибки
Traceback (most recent call last):
File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 683, in process_request_thread
self.finish_request(request, client_address)
File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 360, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 747, in __init__
self.handle()
File "/Users/artemkashipov/Documents/HomeTaskFR/venv/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 171, in handle
self.handle_one_request()
File "/Users/artemkashipov/Documents/HomeTaskFR/venv/lib/python3.9/site-packages/django/core/servers/basehttp.py", line 179, in handle_one_request
self.raw_requestline = self.rfile.readline(65537)
File "/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socket.py", line 704, in readinto
return self._sock.recv_into(b)
ConnectionResetError: [Errno 54] Connection reset by peer
извиняюсь) просто использовал старую версию django. Но все равно broken pipe сообщение на сервере нормально ли это?
Django music player tutorial please )
Ок
Привет!Что делать если не работает перемотка видео?У меня свой плеер, но даже на обычном от гугла не работает.Пробывал preload="auto" и metadata но не работает.Может знаешь что делать?Искал в гугле и чат-гпт, в гугле ну очень мало таких проблем а чат-гпт выдал какой-то высер про то что нужно все проверить и тд.Буду рад если поможешь.
Нужно отослать на Бек с какого байта начать видео отдавать
Привет. А есть ли возможность логировать все действия пользователя в плеере? Например, увеличение или уменьшение уровня громкости, скорости видео, поставка на паузу.
Можно поискать ответ в документации, docs.videojs.com/index.html
18200 подписчик
сложна((
Как мне отобразить ответ в модели? инвестируя в получение прямого ответа? в случае размещения плеера с конкретными элементами управления субтитрами видео в отдельном шаблоне.
Kak mne otobrazit' otvet v modeli? investiruya v polucheniye pryamogo otveta? v sluchaye razmeshcheniya pleyera s konkretnymi elementami upravleniya subtitrami video v otdel'nom shablone.
def get_streaming_video(request, pk: int): # Reproduz os filmes
try:
file, status_code, content_length, content_range = open_file(request, pk)
response = StreamingHttpResponse(file, status=status_code, content_type='video/mp4')
response['Accept-Ranges'] = 'bytes'
response['Content-Length'] = str(content_length)
response['Cache-Control'] = 'no-cache'
response['Content-Range'] = content_range
logger.debug('Video encontrado, reproduzindo...')
response['X-Content-Type-Options'] = 'nosniff'
response['controlsList'] = 'nodownload'
ЗДЕСЬ ШАБЛОН КАК МОЙ ПРИМЕР: return render(request, 'player.html', context={'movie_id': pk})
ZDES' SHABLON KAK MOY PRIMER: return render(request, 'player.html', context={'movie_id': pk})
except Exception as e:
logger.error(f'Erro ao tentar reproduzir: {str(e)}')