Вопрос или проблема
Я хочу транслировать видеопоток по HTTP, но ffmpeg выдает сообщение об ошибке:
[tcp @ 0x5636b74e4740] Не удалось подключиться к tcp://127.0.0.1:4000:
Соединение отклонено http://127.0.0.1:4000/: Соединение отклонено
Моя команда:
ffmpeg -i rtsp://username:[email protected]:554 -vsync 0 -vcodec copy -movflags frag_keyframe+empty_moov -f mp4 http://127.0.0.1:4000/
Я просто пытаюсь конвертировать RTSP-видео, чтобы оно могло воспроизводиться в браузерах с использованием HTTP. Очевидно, что мне нужен HTTP-сервер для этого, но у меня нет идей, как это сделать. Буду признателен за помощь.
Спасибо
Чтобы запустить ffmpeg, вам сначала нужно установить ffmpeg на ваш компьютер… и убедиться, что он находится в той же папке, что и html файл. Затем выполните команду:
ffmpeg -i rtsp://username:[email protected]:554/Streaming/Channels/101 -fflags flush_packets -max_delay 5 -flags -global_header -hls_time 5 -hls_list_size 2 -hls_flags delete_segments -vcodec copy -y video1.m3u8
Это конвертирует поток в видеофайл с расширением m3u8.
После выполнения команды сделайте отображение на веб-странице с использованием html:
<html>
<head>
<link href="https://vjs.zencdn.net/7.17.0/video-js.css" rel="stylesheet" />
<style>
.cctvplay
{
float: left;
margin-left: 5px;
margin-top: 5px;
}
</style>
</head>
<body>
<div class="cctvplay" >
<video id="my-video" style="text-decoration: none" class="video-js" controls poster="" preload="auto" width="520" height="440" data-setup=" {}" >
<source src="video1.m3u8" />
</div>
<script src="https://vjs.zencdn.net/7.17.0/video.min.js"></script>
</body>
</html>
Удачи…
Ответ или решение
Для стриминга видео через HTTP с помощью FFmpeg необходимо учитывать несколько важных аспектов, в том числе наличие HTTP-сервера и правильное выполнение команды FFmpeg для трансляции потока.
Установка HTTP-сервера
Для того чтобы вы могли организовать стриминг через HTTP на локальном хосте (127.0.0.1:4000
), вам требуется установить и запустить HTTP-сервер. Одним из простых способов это сделать является использование сервера Nginx или Python HTTP-сервера.
-
Используя Python:
Убедитесь, что у вас установлен Python. Затем выполните следующую команду в терминале (в директории, где будет храниться ваш проект):
python -m http.server 4000
-
Используя Nginx:
Понадобится установить Nginx и настроить его на прослушивание порта 4000. Пример конфигурации:
server { listen 4000; server_name localhost; location / { root /path/to/your/video/files; # Укажите путь, где будут находиться ваши файлы index index.html; } }
Команда FFmpeg
Теперь, когда сервер запущен, вы можете использовать FFmpeg для преобразования потока RTSP в формат, который можно будет использовать для потоковой передачи по HTTP. Попробуйте следующую команду для создания файла video1.m3u8
:
ffmpeg -i rtsp://username:[email protected]:554/Streaming/Channels/101 -fflags flush_packets -max_delay 5 -flags -global_header -hls_time 5 -hls_list_size 0 -hls_flags delete_segments -vcodec copy -y /path/to/your/video/files/video1.m3u8
HTML для воспроизведения видео
После выполнения команды и создания файла плейлиста video1.m3u8
создайте HTML-страницу для воспроизведения стрима:
<html>
<head>
<link href="https://vjs.zencdn.net/7.17.0/video-js.css" rel="stylesheet" />
<style>
.cctvplay {
float: left;
margin-left: 5px;
margin-top: 5px;
}
</style>
</head>
<body>
<div class="cctvplay">
<video id="my-video" class="video-js" controls preload="auto" width="520" height="440" data-setup="{}">
<source src="http://127.0.0.1:4000/video1.m3u8" />
</video>
</div>
<script src="https://vjs.zencdn.net/7.17.0/video.min.js"></script>
</body>
</html>
Проверка
После того как вы написали HTML и запустили HTTP-сервер, откройте браузер и перейдите по адресу http://127.0.0.1:4000/
, чтобы просмотреть вашу HTML-страницу и воспроизвести видео.
Заключение
Эта последовательность шагов позволит вам успешно стримить видео через HTTP, используя FFmpeg для преобразования потока и простой HTTP-сервер для обслуживания файла. Убедитесь, что все компоненты работают корректно и каждый шаг выполнен без ошибок. Если возникнут проблемы, стоит проверить логи и сообщения об ошибках для дальнейшего устранения неполадок. Удачи!