我有一个 Blazor 托管应用程序,我需要根据客户请求从 AXIS 摄像机获取 h264 录制内容(通过 RTSP PLAY 命令)并以浏览器可以重现视频的方式返回它。如果向 AXIS 摄像机查询录音列表,答案包括这个,即我尝试在浏览器上播放的那个
<recording diskid="SD_DISK" recordingid="20211109_122753_1AB3_B8A44F2D0300" starttime="2021-11-09T11:27:53.060281Z" starttimelocal="2021-11-09T12:27:53.060281+01:00" stoptime="2021-11-09T11:43:01.125987Z" stoptimelocal="2021-11-09T12:43:01.125987+01:00" recordingtype="continuous" eventid="continuous" eventtrigger="continuous" recordingstatus="completed" source="1" locked="No">
<video mimetype="video/x-h264" width="800" height="600" framerate="15:1" resolution="800x600"/>
</recording>
Run Code Online (Sandbox Code Playgroud)
我可以通过“开放网络流...”并输入来成功地使用 VLC 重现录音
rtsp://192.168.0.125/axis-media/media.amp?recordingid=20211109_140710_E1A3_B8A44F2D0300
Run Code Online (Sandbox Code Playgroud)
然后提供用户名和密码,所以我确信命令是正确的。通过在 url 中嵌入用户名和密码,也可以在该项目中播放录音,其中使用了我下面使用的更简单的语法,因此我的示例可能有点过于复杂。
服务器端由于RtspClientSharp ,我可以成功检索流,但我无法以正确的方式返回它。到目前为止我有这个:
[HttpGet("RecordingsDemo")]
public async Task<IActionResult> RecordingsDemo() {
string deviceIp = "rtsp://192.168.0.125";
string recordingUri = "rtsp://192.168.0.125/axis-media/media.amp?recordingid=20211109_140710_E1A3_B8A44F2D0300";
Uri playRequestUri = new Uri(recordingUri);
CancellationTokenSource cts = new CancellationTokenSource();
NetworkCredential networkCredential = new NetworkCredential("user", "password");
ConnectionParameters connectionParameters = new ConnectionParameters(new Uri(deviceIp), …Run Code Online (Sandbox Code Playgroud) 我从相机(来自安全摄像头)收到了以下视频文件 http://dl.dropbox.com/u/1369478/tmw/recording.264
我如何查看内容?根据扩展我认为这是一个H264文件.有没有办法在HTML5的浏览器上播放这个?
问候