如何在网络浏览器中显示 rtmp 直播流?
How to show rtmp live stream in web browser?
我已经设置了一个用于直播的 nginx 服务器,一切正常,我可以看到直播的 VLC 播放器。
我正在尝试在网络浏览器而不是 VLC 播放器中实现实时流式传输,但没有得到任何合适的解决方案。
我看到很多关于 jw 播放器的例子,但它不起作用。
任何人都请建议最好在网络浏览器中观看直播。
谢谢
不可能了。以前可以使用 FASH,但不再支持闪存。您必须使用受支持的格式,例如 HLS 或 DASH
import time
import cv2
from flask import Flask, render_template, Response
from werkzeug.wrappers import Request, Response
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
def gen():
cap = cv2.VideoCapture("live streaming **strong text**url")
width = 1200
height = 700
dim = (width, height)
while(cap.isOpened()):
ret, img = cap.read()
if ret == True:
img = cv2.resize(img, dim, fx=0.5, fy=0.5)
frame = cv2.imencode('.jpg', img)[1].tobytes()
yield (b'--frame\r\n'b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
time.sleep(0.1)
else:
break
@app.route('/video_feed')
def video_feed():
return Response(gen(),
mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ ==('__main__'):
from werkzeug.serving import run_simple
run_simple('localhost', 7600, app)
因为我在尝试解决类似问题时来晚了,这里有一个我觉得有用的答案。
一个选项可能正在使用这个项目:rtsp-simple-server
您可以尝试使用从 rtmp 到 HLS 的代理。然后你需要为你的浏览器添加 HLS 支持(此时非 sarari 浏览器似乎需要像 hls.js 这样的 JS 回退)
您可能希望在配置 yaml 中添加这样的部分以桥接单个流:
paths:
hls:
source: rtmp://example.com:1935/stream
我已经设置了一个用于直播的 nginx 服务器,一切正常,我可以看到直播的 VLC 播放器。
我正在尝试在网络浏览器而不是 VLC 播放器中实现实时流式传输,但没有得到任何合适的解决方案。
我看到很多关于 jw 播放器的例子,但它不起作用。 任何人都请建议最好在网络浏览器中观看直播。
谢谢
不可能了。以前可以使用 FASH,但不再支持闪存。您必须使用受支持的格式,例如 HLS 或 DASH
import time
import cv2
from flask import Flask, render_template, Response
from werkzeug.wrappers import Request, Response
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
def gen():
cap = cv2.VideoCapture("live streaming **strong text**url")
width = 1200
height = 700
dim = (width, height)
while(cap.isOpened()):
ret, img = cap.read()
if ret == True:
img = cv2.resize(img, dim, fx=0.5, fy=0.5)
frame = cv2.imencode('.jpg', img)[1].tobytes()
yield (b'--frame\r\n'b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
time.sleep(0.1)
else:
break
@app.route('/video_feed')
def video_feed():
return Response(gen(),
mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ ==('__main__'):
from werkzeug.serving import run_simple
run_simple('localhost', 7600, app)
因为我在尝试解决类似问题时来晚了,这里有一个我觉得有用的答案。
一个选项可能正在使用这个项目:rtsp-simple-server
您可以尝试使用从 rtmp 到 HLS 的代理。然后你需要为你的浏览器添加 HLS 支持(此时非 sarari 浏览器似乎需要像 hls.js 这样的 JS 回退)
您可能希望在配置 yaml 中添加这样的部分以桥接单个流:
paths:
hls:
source: rtmp://example.com:1935/stream