标签: rtp

简单的rtsp广播示例源

我想使用rtsp/rtp广播我的程序的屏幕(不是静态屏幕),因为这样一部手机(至少是最近的手机)可以查看流.

我正在寻找一个简单的示例程序,它采用我提供的帧,用编解码器对其进行编码,然后将其(使用rtsp)发送到任何连接的客户端.

我看过网络,到目前为止我能找到的都是完全成熟的开源媒体服务器(如darwin),这些服务器太复杂了,无法用作示例

任何帮助赞赏!

[R

ps发送jpegs到手机真的不是一个选择,因为这是非标准的,并且需要安装移动应用程序来解释'流'.

ps2 C,C++或C#会好的.

c# c++ video rtp rtsp

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

如何从FFMPEG生成SDP文件

因此,我一直在与FFMPEG合作开展一个项目,该项目涉及使用RTP将视频从一台计算机流式传输到另一台计算机.我想把它带到ffmpeg并使用ffserver在本地网络上显示它.

据我了解,您需要有一个SDP信息,以便接收ffmpeg实例可以解释RTP流.尽管网页说什么,但我无法在打印到控制台的信息中找到SDP信息.

如何强制传输ffmpeg实例输出SDP信息,以便我可以用它来配置我的接收端?

现在,我正在测试Windows 7,但最终的解决方案将在Linux上.

我正在运行测试的命令是

ffmpeg -fflags +genpts -i files\2005-SFSD-sample-mpeg1.mpg -threads 0 -r 10 -g 45
-s 352x240 -deinterlace -y 2005.mp4 -an -threads 0 -r 10 -g 45 -s 352x240 
-deinterlace -f rtp rtp://192.168.200.198:9008
Run Code Online (Sandbox Code Playgroud)

我的ffmpeg信息是......

ffmpeg version 0.8, Copyright (c) 2000-2011 the FFmpeg developers built on Jun 23 2011 14:22:23 with gcc 4.5.3 
configuration: 
--disable-static  
--enable-shared 
--enable-gpl  
--enable-version3 
--enable-memalign-hack  
--enable-runtime-cpudetect 
--enable-avisynth 
--enable-bzlib 
--enable-frei0r 
--enable-libopencore-amrnb 
--enable-libopencore-amrwb 
--enable-libfreetype 
--enable-libgsm 
--enable-libmp3lame 
--enable-libopenjpeg 
--enable-librtmp 
--enable-libschroedinger 
--enable-libspeex 
--enable-libtheora 
--enable-libvorbis 
--enable-libvpx 
--enable-libx264 
--enable-libxavs 
--enable-libxvid 
--enable-zlib …
Run Code Online (Sandbox Code Playgroud)

windows ffmpeg rtp video-streaming sdp

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

无法将libavformat/ffmpeg与x264和RTP同步

我一直在研究一些流媒体软件,它使用H.264通过网络从各种摄像机和流中获取实时信息.为了实现这一点,我直接使用x264编码器(带有"zerolatency"预设)并提供NAL,因为它们可用于libavformat以打包到RTP(最终是RTSP).理想情况下,此应用程序应尽可能实时.在大多数情况下,这一直运作良好.

然而不幸的是,存在某种同步问题:客户端上的任何视频回放似乎都显示了一些平滑帧,然后是短暂停顿,然后是更多帧; 重复.此外,似乎有大约4秒的延迟.我尝试过的每一个视频播放器都会出现这种情况:Totem,VLC和基本的gstreamer管道.

我把它煮成了一个小小的测试用例:

#include <stdio.h>
#include <stdint.h>
#include <unistd.h>
#include <x264.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>

#define WIDTH       640
#define HEIGHT      480
#define FPS         30
#define BITRATE     400000
#define RTP_ADDRESS "127.0.0.1"
#define RTP_PORT    49990

struct AVFormatContext* avctx;
struct x264_t* encoder;
struct SwsContext* imgctx;

uint8_t test = 0x80;


void create_sample_picture(x264_picture_t* picture)
{
    // create a frame to store in
    x264_picture_alloc(picture, X264_CSP_I420, WIDTH, HEIGHT);

    // fake image generation
    // disregard how wrong this is; just writing a quick test
    int strides = …
Run Code Online (Sandbox Code Playgroud)

c ffmpeg rtp x264 libavformat

8
推荐指数
1
解决办法
5264
查看次数

如何使用RTP发送和接收语音流

我是使用RTP进行SIP呼叫的新手,现在我正在尝试使用RTP发送和接收语音流以进行SIP呼叫.我完成了连接两个仿真器并能够使用jain sip发送INVITE和INVITE-ACK.

得到Ack之后我想开始RTP进行媒体流,我使用RtpPacket函数发送和接收

RtpFunction用来发送带有所有RTP头的媒体,如下所示:

byte Version;
boolean Padding;
boolean Extension;
byte CC;
boolean Marker;
byte PayloadType;
short SequenceNumber;
int TimeStamp;
Run Code Online (Sandbox Code Playgroud)

请给出一些我能找到答案的想法和实际链接.

android voip sip rtp jain-sip

8
推荐指数
1
解决办法
7543
查看次数

通过Websocket发送WebRTC MediaStream(通过HTTP/Websocket进行RTP)

除其他外,WebRTC用于实时浏览器到浏览器媒体通信,但在我的情况下,它将用于浏览器到服务器的音频通信.

根据我收集的信息,使用RTP over UDP传输MediaStream.

除了用于信令的协议之外,这将需要至少两个额外的端口,这是我想要避免的.

在WebRTC中,是否有可能在Websocket上使用RTP而不是在UDP上使用RTP,这样我只需要使用端口80或443?

rtp websocket webrtc

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

Python发送和接收RTP数据包

我想通过RTP发送多媒体数据.我想知道的是如何使用Python发送和接收RTP数据包.我找到了python类DPKT.但无法找到一个很好的参考,可视化如何在RTP中生成每个字段.

如果有人可以帮助我在服务器上生成和接收rtp数据包,我将不胜感激.

python network-programming rtp gstreamer python-gstreamer

8
推荐指数
1
解决办法
9640
查看次数

RTSP设置后接收RTP数据包

我正在尝试使用Python从IP摄像机流式传输RTP数据包.

我能够使用RTSP协议发送describe,setup和play命令,但是,我无法使用RTP开始流式传输实际的视频流.

这是代码:

import socket 

def printrec(recst):
  recs=recst.split('\r\n')
  for rec in recs:
    print rec

dest="DESCRIBE rtsp://admin:12345@192.168.1.74 RTSP/1.0\r\nCSeq: 2\r\nUser-Agent: python\r\nAccept: application/sdp\r\n\r\n"

setu="SETUP rtsp://admin:12345@192.168.1.74/trackID=1 RTSP/1.0\r\nCSeq: 3\r\nUser-Agent: python\r\nTransport: RTP/AVP;unicast;client_port=60784-60785\r\n\r\n"

play="PLAY rtsp://admin:12345@192.168.1.74/ RTSP/1.0\r\nCSeq: 5\r\nUser-Agent: python\r\nSession: SESID\r\nRange: npt=0.000-\r\n\r\n"

# .. here SESID will be substituted with the session id that SETUP returns us ..

ip="192.168.1.74"
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip,554))

s.send(dest)
recst=s.recv(4096)
printrec(recst)

# etc. then the same for the strins "setu" and "play"

....
Run Code Online (Sandbox Code Playgroud)

安装程序回复我:

RTSP/1.0 200 OK
CSeq: 3
Session:       1117448817;timeout=60
Transport: RTP/AVP;unicast;client_port=60784-60785;server_port=8214-8215;ssrc=40d35c30;mode="play"
Date:  Mon, …
Run Code Online (Sandbox Code Playgroud)

python sockets udp rtp rtsp

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

如何在iOS设备中接收从RTP URL流式传输的RTP数据包?(例如rtp://@225.0.0.0)

我正在尝试从RTP URL流式传输RTP数据包(流式传输音频),例如rtp:// @225.0.0.0经过如此多的研究,我在设备上有点流式传输URL并使用https://播放github.com/maknapp/vlckitSwiftSample.这只是播放流数据,但没有任何存储数据的功能.

从研究和其他来源,我发现了很多内容和简单的信息,这些信息应该有助于通过RTP流式传输数据包并将其存储在iOS设备中.

我试过以下链接.

  1. https://github.com/kewlbear/FFmpeg-iOS-build-script

  2. https://github.com/chrisballinger/FFmpeg-iOS

这两个甚至没有编译,因为POD问题其他项目或指南只是给我参考RTSP流而不是RTP流.

如果有人能给我们一个指导或任何想法,我们如何能够实现这些事情,那么我们将不胜感激.

objective-c rtp audio-streaming ios swift

8
推荐指数
1
解决办法
1742
查看次数

保持活跃的Rtsp连接

我有一个简单的Rtsp客户端...客户端将Rtsp命令发送到Rtsp服务器并从服务器获取RTP数据包.

问题是经过一段时间(大约3-4分钟)后,我的第三方RTSP服务器断开与RTSP客户端的连接.

我没有实现RTCP ...我从rtsp服务器获取rtp数据包但不发送任何RTCP PACKET ...

我做了简单的搜索,发现有些人使用一些RTSP命令[比如OPTIONS,SET PARAMETER-GET PARAMETER]也保持RTSP服务器和客户端之间的连接...但在我的情况下,这不起作用...

这是我的问题:

  1. 与RTSP服务器保持连接的最佳方法是什么?
  2. 我是否必须实施RTCP [将RTCP数据包发送到服务器]?连接是否会丢失,因为我不向服务器发送RTCP数据包?

rtp rtsp rtsp-client

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

onvif 与 rtsp - 区别

我刚刚开始深入研究流媒体库和底层协议。我了解 rtsp/rtp 流媒体以及这两个协议的用途。但是,如果我们需要 IP 地址、编解码器和 rtsp/rtp 协议来流式传输来自任何摄像机的视频和音频,那么为什么我们有 onvif 标准,该标准本质上也旨在标准化 IP 网络设备之间的通信。我已经看到了 onvif 的定义,所以这不是我要找的。我想知道为什么在我们已经拥有 rtsp/rtp 的情况下我们还需要 onvif 以及它可以提供哪些额外的好处。

rtp rtsp onvif

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