2016-09-11 7 views
1

Мне нужно, чтобы отобразить поток IP камеры в формате HTML видеотега, я понял, как перекодировать в файл из потока RTSP, как этотFFmpeg перекодировать в прямом эфире поток

ffmpeg -i "rtsp://user:[email protected]" -s 640x480 /tmp/output.mp4

Теперь мне нужно чтобы иметь возможность быть в состоянии жить потокового ввода RTSP в видеотега как этот

<video id="video" src="http://domain:port/output.mp4" autoplay="autoplay" />

Я пытался сделать что-то вроде этого в моем сервере (убунту микро экземпляра на амазонке), чтобы г eproduce видео в видео тег, но не работает

ffmpeg -i "rtsp://user:[email protected]" -s 640x480 http://localhost:8080/stream.mp4

вместо я получил этот журнал

[tcp @ 0x747b40] Connection to tcp://localhost:8080 failed: Connection refused http://localhost:8080/stream.mp4: Connection refused

я действительно не понимаю, что происходит, не уверен, если это посылающий выводить на этот url или обслуживать вывод там и этим, я проверял документы ffmpeg man, но я не нашел никакого примера, связанного с этим прецедентом, а также другие вопросы, такие как этот FFmpeg Stream Transcoding, который похож на мою последнюю попытку без успех

Кстати, это камера, я использую DS-2CD2020F-I (W) - http://www.hikvision.com/en/Products_accessries_157_i5847.html они предлагают httppreview, но это просто источник тег IMG, который обновляет, но нестабильно

Это мой первый время, пытаясь сделать что-то подобное, так что любое понимание о том, как его достичь, будет действительно полезно и оценено

+0

см. Http://stackoverflow.com/questions/26999595/what-steps-are-needed-to-stream-rtsp-from-ffmpeg, вам необходимо объединить ffserver и ffmpeg. Также есть несколько продуктов с открытым исходным кодом, которые могут делать это по бесплатной лицензии (что избавит вас от хлопот). –

+0

@ Rudolfs В наши дни FFMPEG поддерживает HTTP Live Streaming без необходимости в FFServer. Основным недостатком является более высокая латентность. – GroovyDotCom

ответ

2

Что-то вроде этого должно работать, чтобы создать живой поток HLS с видеокамеры, но латентность не будет хорошей. Если задержка важна, вы можете посмотреть WebRTC.

FFmpeg -i "RTSP: // пользователь: пароль @ ф" -s 640x480 -c: v libx264 -f ssegment -hls_flags delete_segments -segment_list playlist.m3u8 -segment_list_type HLS -segment_list_size 10 -segment_list_flags + жить -segment_time 10 out_% 6d.ts

Вам нужно найти выход для сгенерированных ц и m3u8 файлов за сервером HTTP, а затем вы можете использовать эту test страницу, чтобы проверить, что он работает.

+0

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

+0

@Rudolfs Вам не нужно вручную копировать их, просто создавайте их непосредственно на HTTP-сервере. Кажется, Apple думает, что это потоковое вещание, учитывая, что HLS означает HTTP Live Streaming. Это яснее в моем ответе. – GroovyDotCom

+1

Да, я закончил использовать kurento с webrtc http://www.kurento.org/blog/interoperating-webrtc-and-ip-cameras, это прекрасный пример того, что мне нужно, учитывая rtsp: // ip stream it в теге видео :) – brayancastrop