标签: rtp

从rtp数据包中解析MPEG4帧

我试图从来自轴摄像机的rtp流解析不同的mpeg4帧,并使用avcodec_decode_video函数将数据包提供给ffmpeg库.这里是我正在做的步骤1. rtsp流初始化2. rtp流开始流入3.第一个数据包我开始000001b0 ...配置数据跟随,然后该帧开始于000001b6 ..第二个rtp有效载荷会有所不同,直到我得到一个rtp数据包,其中标记位被设置.之后我再次收到以000001b6开头的数据包并继续使用5-10 rtp数据包..这种模式重复

我正在做的是,如果我检测到000001b0/b6 - 我会累积所有后来的数据包,并在正确初始化解码器上下文之后将较大的缓冲区提供给libavcodec的avcodec_decode_video函数.

但是我在这里得到了一张糟糕的照片,最顶部的部分,一个水平条纹 - 水晶般清晰的图片,剩下的就是蹩脚的.我不确定为什么它会像这样.请帮我

我在rtp数据包中获得的数据是动态-96.

需要注意的是:当我传递iframes和p帧时,这些帧全神贯注于其他制造商的propreitary协议中,ffmpeg能够解析并提供非常好的pcitures.

任何帮助表示赞赏

ffmpeg rtp mpeg-4

3
推荐指数
1
解决办法
5765
查看次数

如何编写客户端-服务器视频流

我正在研究可以实时工作的项目:我必须编写一个视频流客户端服务器应用程序,该服务器将AVI / MPEG等发送到Web应用程序。我有一些问题:

  1. 建议使用什么协议来执行此操作,http?rtp?或其他?

  2. 在Web应用程序中,如何显示给用户?使用Flash Player,Java Applet(我不确定是否可以使用它)或HTML5,目前最好的方法是什么?

我希望这对您来说很干净。非常感谢您的帮助。提前致谢。:)

.net c# video streaming rtp

3
推荐指数
1
解决办法
2万
查看次数

显示 RTP MJPEG

我正在寻找一种使用 JavaFx 显示 RTP JPEG 流的解决方案。我可以从文件中显示 jpeg 并接收 RTP JPEG 流并将其拆分以识别RFC2435 中指定的所有参数和数据 但我不知道如何将我的 JPEG 数组转换为可显示的图像。我不想自己实现 JPEG 解码器。任何的想法?

java arrays jpeg rtp

3
推荐指数
1
解决办法
6339
查看次数

Gstreamer、rtspsrc 和有效载荷类型

我在从特定相机检索 rtsp 流时遇到困难,因为相机提供的 rtp 有效载荷类型为 35(未分配),并且rtph264depay插件接受的有效载荷类型在 [96-127] 范围内。结果是 gstreamer 显示如下错误:

<udpsrc0> error: Internal data flow error.
<udpsrc0> error: streaming task paused, reason not-linked (-1)
Run Code Online (Sandbox Code Playgroud)

我测试过的其他相机正在工作,因为它们定义了良好的有效载荷类型。

FFmpeg、MPlayer 和其他工具播放流,尽管它们可能会显示未知类型的警告,例如在 Mplayer 中:

rtsp_session: unsupported RTSP server. Server type is 'unknown'
Run Code Online (Sandbox Code Playgroud)

在 gstreamer 中是否有任何方法可以伪造有效负载类型、忽略不匹配的属性、强制插件之间的链接或以其他方式为我的问题创建解决方法?

我正在使用的管道是:

gst-launcg-0.10 rtspsrc location="..." ! rtph264depay ! capsfilter caps="video/x-h264,width=1920,height=1080,framerate=(fraction)25/1" ! h264parse ! matroskamux ! filesink location="test.mkv"
Run Code Online (Sandbox Code Playgroud)

rtp rtsp gstreamer

3
推荐指数
1
解决办法
2885
查看次数

WebRTC'goog-remb'和'transport-cc'SDP线

我想知道这条SDP线的含义,因为我正在尝试以5%到10%的数据包丢失来获得最平滑的帧率。

我不知道的行是:a = rtcp-fb:100 goog-remb a = rtcp-fb:100 transport-cc

我不知道为什么firefox(例如)取消了“ transport-cc”功能,即使我必须解码不完整的视频帧,我是否也想使流帧率平滑?

最好的问候,我希望有人可以帮助我:)

c++ rtp sdp rtcp webrtc

3
推荐指数
1
解决办法
2583
查看次数

GStreamer 中的 UdpSink 在 Windows 中不起作用

我是 GSTreamer 的新手。我尝试使用 GStreamer 上传视频。在运行以下命令时,

gst-launch-1.0 videotestsrc !udpsink 端口=5200

我收到如下警告。

WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Attempting to send a UDP packets larger than maximum size (115200 > 65507)
Additional debug info:
gstmultiudpsink.c(715): gst_multiudpsink_send_messages (): /GstPipeline:pipeline0/GstUDPSink:udpsink0:
Reason: Error sending message: A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself.
0:00:56.934530706  4912 0000000002F09640 WARN            multiudpsink gstmultiudpsink.c:715:gst_multiudpsink_send_messages:<udpsink0> warning: Attempting …
Run Code Online (Sandbox Code Playgroud)

windows rtp video-streaming gstreamer

3
推荐指数
1
解决办法
3332
查看次数

ffmpeg rtp 流媒体错误:RTP:丢弃收到的旧数据包太晚了

我通过 ffmpeg 开始视频传输,如下所示:

ffmpeg -f video4linux2 -i /dev/video0 -vcodec libx264 -preset ultrafast -crf 20 -tune zerolatency -s 800x600 -r 25 -b:v 0.9M -sdp_file video.sdp -f rtp rtp://192.168.10.24:5010    
Run Code Online (Sandbox Code Playgroud)

我以这种方式重现:

ffplay -protocol_whitelist file,udp,rtp video.sdp    
Run Code Online (Sandbox Code Playgroud)

一切正常。然后我中断传输,几秒钟后我恢复。ffplay 不会立即开始重现但出现错误:

....
[sdp @ 0x6ebf80] RTP: dropping old packet received too lateB f=1/1
    Last message repeated 14 times
[sdp @ 0x6ebf80] RTP: dropping old packet received too lateB f=1/1
    Last message repeated 33 times
[sdp @ 0x6ebf80] RTP: dropping old packet received too lateB f=1/1
    Last message …
Run Code Online (Sandbox Code Playgroud)

ffmpeg rtp video-streaming

3
推荐指数
1
解决办法
2678
查看次数

Gstreamer / RTSP - 创建管道以减少由于 rtpjitterbuffer 导致的延迟

我正在访问RTSPVIRB 360 摄像机的视频流。我可以使用以下gstreamer命令播放流:

gst-launch-1.0 -v playbin uri=rtsp://192.168.0.1/livePreviewStream?maxResolutionVertical=720\&liveStreamActive=1
Run Code Online (Sandbox Code Playgroud)

但是,流式传输存在3 秒的延迟,需要消除该延迟。上述命令的输出(由于-v)已上传至此处我还按照此问题/答案.svg中描述的方法为管道创建了一些文件。这些文件已上传至此处。我相信并代表完整的管道(多个文件是由单个管道生成的,这就是多个文件的原因)。在文件中,可以看到下面有一个.mypipeline4.svgmypipeline5.svgdot.svg.svglatency=2000rtpjitterbuffer

计划是通过手动添加组件而不是使用 来构建相同的管道playbin,然后设置 的延迟属性rtpjitterbuffer。我尝试过以下命令:

1)gst-launch-1.0 rtspsrc location=rtsp://192.168.0.1/livePreviewStream?maxResolutionVertical=720\&liveStreamActive=1 ! udpsrc ! rtpsession ! rtpssrcdemux ! rtpjitterbuffer ! rtpptdemux ! queue ! udpsink ! queue ! rtph264depay ! h264parse ! omxh264dec ! playsink

2)gst-launch-1.0 rtspsrc location=rtsp://192.168.0.1/livePreviewStream?maxResolutionVertical=720\&liveStreamActive=1 ! udpsrc ! rtpsession ! rtpssrcdemux ! rtpjitterbuffer ! rtpptdemux …

pipeline rtp rtsp gstreamer h.264

3
推荐指数
1
解决办法
1万
查看次数

RTP 数据包最大尺寸?

我试图找出 RTP 数据包的最大大小。我知道最小标头大小为 12 字节,但我没有找到有关有效负载的任何信息。

RTP 数据包的最大大小可能与 UDP 负载最大大小相同吗?我的意思是,我只有一个负载巨大的 RTP 数据包。这是可能的,在这种情况下,对于不这样做的 RTP 数据包有任何推荐的大小吗?

例如,我在 RTP 中封装 MP3 帧。我是用 1 个 MP3 帧、2 个还是多少个 MP3 帧制作 RTP 帧?

我希望你明白我的问题:)

size udp protocols rtp payload

3
推荐指数
1
解决办法
3878
查看次数

Websocket连接因星号11而失败

我正在尝试配置websocket以使用星号11.但是有一些问题.我遵循的步骤是:在http.conf中启用以下内容

enabled=yes
bindaddr=0.0.0.0  
bindport=8088   
Run Code Online (Sandbox Code Playgroud)

我还配置了支持DTLS的星号.但是当我尝试连接到websocket的新WebSocket时("ws:// mySeverIp:8088/ws"); .它抛出一个错误

WebSocket connection failed: Error during WebSocket handshake: Unexpected response code: 400  
Run Code Online (Sandbox Code Playgroud)

有人请帮忙.

谢谢

asterisk rtp websocket dtls webrtc

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

rtp ×10

gstreamer ×3

ffmpeg ×2

rtsp ×2

video-streaming ×2

webrtc ×2

.net ×1

arrays ×1

asterisk ×1

c# ×1

c++ ×1

dtls ×1

h.264 ×1

java ×1

jpeg ×1

mpeg-4 ×1

payload ×1

pipeline ×1

protocols ×1

rtcp ×1

sdp ×1

size ×1

streaming ×1

udp ×1

video ×1

websocket ×1

windows ×1