[GH-ISSUE #2300] 请问如何穿透相机web,并且能看到视频画面 #1829

Closed
opened 2026-05-05 13:10:57 -06:00 by gitea-mirror · 12 comments
Owner

Originally created by @liwang54321 on GitHub (Mar 15, 2021).
Original GitHub issue: https://github.com/fatedier/frp/issues/2300

比方说穿透相机的web界面,界面里面带有视频预览,用http进行穿透后,只能看到web界面,但是看不到视频预览,请问这个要怎么配置呢

Originally created by @liwang54321 on GitHub (Mar 15, 2021). Original GitHub issue: https://github.com/fatedier/frp/issues/2300 比方说穿透相机的web界面,界面里面带有视频预览,用http进行穿透后,只能看到web界面,但是看不到视频预览,请问这个要怎么配置呢
gitea-mirror 2026-05-05 13:10:57 -06:00
Author
Owner

@zsinba commented on GitHub (Mar 17, 2021):

这种场景我做过.
在相机里跑FRPC,然后通过HTTPS连接过去,这个能跑出来 .我尝试过天文相机(QHYCCD)的,也尝试过编码器(海思的板子).
可以从相机里拉flv流,然后播放.

缺点:

  1. 你要把frpc放在相机里自启动,如果 没有网络,他要一直监听着等网络来了马上启动
  2. 相机的板子如果配置一般,可能会卡死
  3. frpc更新不方便,因为要放程序进去,更新也只能远程ssh过去更新
  4. 使用frp穿透过去的图像,并发超过三个就开始卡了,这是网络和硬件能力的原因.

我对这个场景的应用研究是几年前的事情 ,当时还没有FRP的时候,我使用Ngrok就开始使用这种方式.
后来,我放弃了Ngrok,两个原因一是他是C写的,很难排错,二来他2.0不开源了.
再后来(2019)年开始,使用FRP来做硬件反向连接和远程设备影像, 再进一步的做法是FRP配置CDN一起来加大并发,这样就解决了多人观看的问题了.

<!-- gh-comment-id:800826483 --> @zsinba commented on GitHub (Mar 17, 2021): 这种场景我做过. 在相机里跑FRPC,然后通过HTTPS连接过去,这个能跑出来 .我尝试过天文相机(QHYCCD)的,也尝试过编码器(海思的板子). 可以从相机里拉flv流,然后播放. 缺点: 1. 你要把frpc放在相机里自启动,如果 没有网络,他要一直监听着等网络来了马上启动 2. 相机的板子如果配置一般,可能会卡死 3. frpc更新不方便,因为要放程序进去,更新也只能远程ssh过去更新 4. 使用frp穿透过去的图像,并发超过三个就开始卡了,这是网络和硬件能力的原因. 我对这个场景的应用研究是几年前的事情 ,当时还没有FRP的时候,我使用Ngrok就开始使用这种方式. 后来,我放弃了Ngrok,两个原因一是他是C写的,很难排错,二来他2.0不开源了. 再后来(2019)年开始,使用FRP来做硬件反向连接和远程设备影像, 再进一步的做法是FRP配置CDN一起来加大并发,这样就解决了多人观看的问题了.
Author
Owner

@zsinba commented on GitHub (Mar 17, 2021):

不是很麻烦,挺好用的.
而且这应该是物联网上面的一个趋势.

<!-- gh-comment-id:800873782 --> @zsinba commented on GitHub (Mar 17, 2021): 不是很麻烦,挺好用的. 而且这应该是物联网上面的一个趋势.
Author
Owner

@daQzi commented on GitHub (Mar 23, 2021):

不是很麻烦,挺好用的。
而且这应该是物联网上面的一个趋势。

您好 我们最近也在研究这个 只是相机配置不太高 针对frp客户端跑在相机内部总是会出现卡死的情况 这种情况下您那边有什么解决方案吗?

<!-- gh-comment-id:804527462 --> @daQzi commented on GitHub (Mar 23, 2021): > 不是很麻烦,挺好用的。 > 而且这应该是物联网上面的一个趋势。 您好 我们最近也在研究这个 只是相机配置不太高 针对frp客户端跑在相机内部总是会出现卡死的情况 这种情况下您那边有什么解决方案吗?
Author
Owner

@daQzi commented on GitHub (Mar 23, 2021):

比方说穿透相机的web界面,界面里面带有视频预览,用http进行穿透后,只能看到web界面,但是看不到视频预览,请问这个要怎么配置呢
我们视频是走的websocker 走的是tcp的穿透 但是这样有一个缺点 就是 不稳定容易出现跳帧 而且对服务端的带宽要求特别高

<!-- gh-comment-id:804529887 --> @daQzi commented on GitHub (Mar 23, 2021): > 比方说穿透相机的web界面,界面里面带有视频预览,用http进行穿透后,只能看到web界面,但是看不到视频预览,请问这个要怎么配置呢 我们视频是走的websocker 走的是tcp的穿透 但是这样有一个缺点 就是 不稳定容易出现跳帧 而且对服务端的带宽要求特别高
Author
Owner

@zsinba commented on GitHub (Mar 23, 2021):

不是很麻烦,挺好用的。
而且这应该是物联网上面的一个趋势。

您好 我们最近也在研究这个 只是相机配置不太高 针对frp客户端跑在相机内部总是会出现卡死的情况 这种情况下您那边有什么解决方案吗?

FRP占用的资源应该很低的。 只要能跑起来,卡死的情况原因可能是其他原因。
FRP解决的是内网穿透的事情 ,仅是流量穿透。如果相机不能跑,是否能在相机的内网里,使用其他的设备来跑?

<!-- gh-comment-id:804545963 --> @zsinba commented on GitHub (Mar 23, 2021): > > 不是很麻烦,挺好用的。 > > 而且这应该是物联网上面的一个趋势。 > > 您好 我们最近也在研究这个 只是相机配置不太高 针对frp客户端跑在相机内部总是会出现卡死的情况 这种情况下您那边有什么解决方案吗? FRP占用的资源应该很低的。 只要能跑起来,卡死的情况原因可能是其他原因。 FRP解决的是内网穿透的事情 ,仅是流量穿透。如果相机不能跑,是否能在相机的内网里,使用其他的设备来跑?
Author
Owner

@zsinba commented on GitHub (Mar 23, 2021):

如果有多个相机做监控的话,ispy技术就比较好,ispyconnect.com

这个是基于流媒体的, 一般相机跑不起来这个吧。如果是反射RTMP,RTSP,WEBRTC等方式走流程,相机还是无法穿透,这个方案比较适合有一定二次开发能力的相机,或者相机本身有自己的外发协议的。感觉不是很合适传统的相机。

<!-- gh-comment-id:804546330 --> @zsinba commented on GitHub (Mar 23, 2021): > 如果有多个相机做监控的话,ispy技术就比较好,ispyconnect.com 这个是基于流媒体的, 一般相机跑不起来这个吧。如果是反射RTMP,RTSP,WEBRTC等方式走流程,相机还是无法穿透,这个方案比较适合有一定二次开发能力的相机,或者相机本身有自己的外发协议的。感觉不是很合适传统的相机。
Author
Owner

@zsinba commented on GitHub (Mar 23, 2021):

比方说穿透相机的web界面,界面里面带有视频预览,用http进行穿透后,只能看到web界面,但是看不到视频预览,请问这个要怎么配置呢
我们视频是走的websocker 走的是tcp的穿透 但是这样有一个缺点 就是 不稳定容易出现跳帧 而且对服务端的带宽要求特别高

走WEBSOCKET转发应该没问题的呀,还是TCP转发,我有一台电脑 使用的IPMI,就是走的WEBSOCKT转发,可以的。

<!-- gh-comment-id:804546493 --> @zsinba commented on GitHub (Mar 23, 2021): > > 比方说穿透相机的web界面,界面里面带有视频预览,用http进行穿透后,只能看到web界面,但是看不到视频预览,请问这个要怎么配置呢 > > 我们视频是走的websocker 走的是tcp的穿透 但是这样有一个缺点 就是 不稳定容易出现跳帧 而且对服务端的带宽要求特别高 走WEBSOCKET转发应该没问题的呀,还是TCP转发,我有一台电脑 使用的IPMI,就是走的WEBSOCKT转发,可以的。
Author
Owner

@zsinba commented on GitHub (Mar 23, 2021):

出现跳帧,估计是因为带宽的原因。 你直接WEBSOCKET传输, 同有压缩视频流,这带宽是比较大, 如果能出来H264(5),VP8(9)这样的流,可以解决这个问题。
另外,你说服务器带宽要求比较高,这应该是同一个原因,视频流是裸流出来的,肯定是比较大。 你相机能跑FFMPEG吗?

<!-- gh-comment-id:804547327 --> @zsinba commented on GitHub (Mar 23, 2021): 出现跳帧,估计是因为带宽的原因。 你直接WEBSOCKET传输, 同有压缩视频流,这带宽是比较大, 如果能出来H264(5),VP8(9)这样的流,可以解决这个问题。 另外,你说服务器带宽要求比较高,这应该是同一个原因,视频流是裸流出来的,肯定是比较大。 你相机能跑FFMPEG吗?
Author
Owner

@daQzi commented on GitHub (Mar 24, 2021):

出现跳帧,估计是因为带宽的原因。 你直接WEBSOCKET传输, 同有压缩视频流,这带宽是比较大, 如果能出来H264(5),VP8(9)这样的流,可以解决这个问题。
另外,你说服务器带宽要求比较高,这应该是同一个原因,视频流是裸流出来的,肯定是比较大。 你相机能跑FFMPEG吗?

我们现在没有移植 这个,我们走的websocket mjpeg 直接走的图片流

<!-- gh-comment-id:805703925 --> @daQzi commented on GitHub (Mar 24, 2021): > 出现跳帧,估计是因为带宽的原因。 你直接WEBSOCKET传输, 同有压缩视频流,这带宽是比较大, 如果能出来H264(5),VP8(9)这样的流,可以解决这个问题。 > 另外,你说服务器带宽要求比较高,这应该是同一个原因,视频流是裸流出来的,肯定是比较大。 你相机能跑FFMPEG吗? 我们现在没有移植 这个,我们走的websocket mjpeg 直接走的图片流
Author
Owner

@zsinba commented on GitHub (Mar 24, 2021):

出现跳帧,估计是因为带宽的原因。 你直接WEBSOCKET传输, 同有压缩视频流,这带宽是比较大, 如果能出来H264(5),VP8(9)这样的流,可以解决这个问题。
另外,你说服务器带宽要求比较高,这应该是同一个原因,视频流是裸流出来的,肯定是比较大。 你相机能跑FFMPEG吗?

我们现在没有移植 这个,我们走的websocket mjpeg 直接走的图片流

mjpeg肯定会跳, 你想, 一张图片就算是50KB(大B) , 一秒传10张, 500KB,那就是4M的带宽了。

相当于每一张图片都是I帧, 而且你是相机,肯定不只50KB的大小。

<!-- gh-comment-id:805718356 --> @zsinba commented on GitHub (Mar 24, 2021): > > 出现跳帧,估计是因为带宽的原因。 你直接WEBSOCKET传输, 同有压缩视频流,这带宽是比较大, 如果能出来H264(5),VP8(9)这样的流,可以解决这个问题。 > > 另外,你说服务器带宽要求比较高,这应该是同一个原因,视频流是裸流出来的,肯定是比较大。 你相机能跑FFMPEG吗? > > 我们现在没有移植 这个,我们走的websocket mjpeg 直接走的图片流 mjpeg肯定会跳, 你想, 一张图片就算是50KB(大B) , 一秒传10张, 500KB,那就是4M的带宽了。 相当于每一张图片都是I帧, 而且你是相机,肯定不只50KB的大小。
Author
Owner

@zsinba commented on GitHub (Mar 24, 2021):

你可以考虑外加一个小硬件,海思芯片的编码器。 相机出来 的图片1080P也只要2M带宽也能传了。
编码器成本大概500块,好处是可以看高清。

<!-- gh-comment-id:805718891 --> @zsinba commented on GitHub (Mar 24, 2021): 你可以考虑外加一个小硬件,海思芯片的编码器。 相机出来 的图片1080P也只要2M带宽也能传了。 编码器成本大概500块,好处是可以看高清。
Author
Owner

@github-actions[bot] commented on GitHub (May 9, 2021):

Issues go stale after 45d of inactivity. Stale issues rot after an additional 10d of inactivity and eventually close.

<!-- gh-comment-id:835594843 --> @github-actions[bot] commented on GitHub (May 9, 2021): Issues go stale after 45d of inactivity. Stale issues rot after an additional 10d of inactivity and eventually close.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#1829
No description provided.