标签: rtp

用Java填充字节数组

对于我正在研究的项目的一部分,我正在实现一个RTP包,我必须用RTP头字段填充字节的头部数组.

  //size of the RTP header:
  static int HEADER_SIZE = 12; // bytes

  //Fields that compose the RTP header
  public int Version; // 2 bits
  public int Padding; // 1 bit
  public int Extension; // 1 bit
  public int CC; // 4 bits
  public int Marker; // 1 bit
  public int PayloadType; // 7 bits
  public int SequenceNumber; // 16 bits
  public int TimeStamp; // 32 bits
  public int Ssrc; // 32 bits

  //Bitstream of the RTP header
  public byte[] …
Run Code Online (Sandbox Code Playgroud)

java voip bytearray rtp

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

如何将pcap文件流式传输到RTP/RTCP流?

我已经捕获了三个不同的流作为带有元数据的pcap文件.如何流回RTP/RTCP流?

stream rtp pcap rtcp

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

无法在三星Galaxy S2中的VideoView中播放RTSP视频

我正在尝试播放实时RTSP视频(来自rtsp://media2.tripsmarter.com/LiveTV/BTV/)VideoView,这是我的代码:

public class ViewTheVideo extends Activity {
    VideoView vv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        vv = (VideoView) this.findViewById(R.id.VideoView);

        Uri videoUri = Uri.parse("rtsp://media2.tripsmarter.com/LiveTV/BTV/");
        vv.setMediaController(new MediaController(this));
        vv.setVideoURI(videoUri);
        vv.requestFocus();
        vv.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                vv.start();
            }           
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

这个代码在三星Galaxy Y上工作正常,甚至在模拟器上也可以,但它不能在三星Galaxy S2上运行(对不起,这个视频无法播放)!设备和模拟器都运行Gingerbread.

这是LogCat消息:

07-30 10:48:28.310: I/MediaPlayer(24573): uri is:rtsp://media2.tripsmarter.com/LiveTV/BTV/
07-30 10:48:28.310: I/MediaPlayer(24573): path is null
07-30 10:48:28.310: D/MediaPlayer(24573): Couldn't open file on client side, trying server side
07-30 10:49:13.025: W/MediaPlayer(24573): info/warning (1, 26) …
Run Code Online (Sandbox Code Playgroud)

android rtp rtsp galaxy android-videoview

5
推荐指数
1
解决办法
3904
查看次数

android RTP发送和接收程序

我是android编程的新手,我需要关于android RTP编程的想法.问题

  1. 如何在Android设备上捕获麦克风音频数据?
  2. 如何在不使用API​​的情况下使用捕获的麦克风音频数据构建RTP数据包?
  3. 如何将RTP数据包传输到其他Android设备?
  4. 如何在Android中播放收到的RTP数据包?

audio android rtp

5
推荐指数
1
解决办法
8684
查看次数

寻找一种通过互联网传输关键实时数据的好方法

我正在寻找一种通过互联网传输数据的好方法,我在C++/windows环境下工作.数据是二进制的,是提取图像的压缩blob.输入和要求如下:

  1. 6kB /包@ 10包/秒(每秒60kBytes)
  2. 可靠的数据传输

我是网络编程的新手,到目前为止,我可以发现下列方法之一是合适的.

  1. 套接字
  2. MSMQ(MS消息队列)

客户端在浏览器上运行(在浏览器上显示实时图像).服务器运行本机C++代码.如果有其他方法可以实现相同的目的,请告诉我?我应该选择哪一个?为什么?

sockets network-programming msmq http rtp

5
推荐指数
1
解决办法
1477
查看次数

C#视频转码库

我需要使用C#转码视频流.该流进来的各种格式,比如MP4,H264,H263,VP8.有没有可以转码的c#库MemoryStream

c# video rtp transcoding video-streaming

5
推荐指数
1
解决办法
5620
查看次数

Android的RTP库是否支持多播?

我正在尝试使用Android的RTP类将音频流从一台设备多播到其他设备。

完全不希望使用任何第三方库。

我能够使用AudioStreamAudioGroup设置彼此的IP地址在两个设备之间流式传输双向音频,但是我想流式传输到多播组。

如果我尝试AudioStream使用诸如的多播地址实例化239.1.1.1,然后在另一台设备上使用audioStream.associate()相同的多播地址,但不会听到流。

我读过一些不支持多播的Android设备,但我的设备(均为Samsung Galaxy Tab 2s)都支持。我什至在我的代码中添加了以下内容,以尝试获取多播锁定:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
            multicastLock = wifi.createMulticastLock("multicastLock");
            multicastLock.setReferenceCounted(true);
            multicastLock.acquire();
Run Code Online (Sandbox Code Playgroud)

此外,清单文件中还具有以下权限:

   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.RECORD_AUDIO" />
Run Code Online (Sandbox Code Playgroud)

java android multicast rtp

5
推荐指数
1
解决办法
1938
查看次数

在Android客户端上通过RTP实时流式传输

我正在尝试使用gstreamer作为服务器实现实时流式传输,而不是纯RTP(无RTSP),使用sdp文件,服务器到客户端的延迟时间<500ms.测试服务器已经过测试

gst-launch-1.0 -v v4l2src ! video/x-raw,width=640,height=480,framerate=30/1 ! x264enc tune=zerolatency threads=0 bitrate=500 speed-preset=ultrafast ! rtph264pay pt=96 config-interval=1 ! udpsink host=X.X.X.X port=X
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用gst-launch从gstreamer客户端接收它我没有延迟(在网络上使用两个不同的设备),我也能够使用vlc作为客户端,读取sdp文件和使用文件缓存实现相同的功能> = 1500ms.

我的问题是我需要一个Android客户端.我正在尝试使用LibVLC for Android但是使用相同的选项我无法实现延迟<2s.

适用于Android的LibVLC代码,其中MediaPlayer和Media是org.videolan.libvlc的一部分:

ArrayList<String> options = new ArrayList<String>();
options.add("--file-caching=2000");
mLibVLC = new LibVLC(options);
mLibVLC.setOnHardwareAccelerationError(this);
mHolder.setKeepScreenOn(true);

// Create media player
mMediaPlayer = new MediaPlayer(mLibVLC);
mMediaPlayer.setEventListener(mPlayerListener);

mSurface = (SurfaceView) findViewById(R.id.surfaceView);
mHolder = mSurface.getHolder();

// Set up video output
final IVLCVout vout = mMediaPlayer.getVLCVout();
vout.setVideoView(mSurface);
vout.setWindowSize(640, 480);
vout.addCallback(this);
vout.attachViews();

Media m = new Media(mLibVLC, media);
mMediaPlayer.setMedia(m);
mMediaPlayer.play();
Run Code Online (Sandbox Code Playgroud)

我还尝试了其他选项--clock-synchro -clock-jitter等...在启动时,似乎需要大约2秒来缓冲,这些秒延迟了整个流.有一种方法可以减少标准客户端中的延迟,或者是否存在另一个Android客户端? …

android rtp gstreamer libvlc

5
推荐指数
0
解决办法
1323
查看次数

有没有人可以使用ffserver实时成功流式传输?

我希望使用ffserver传输我的相机视频和麦克风音频.FFserver说它可以做到.但为什么我找不到任何成功的来源?如果有人知道,请告诉我.

rtp rtsp ffserver

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

ffmpeg创建RTP流

我正在尝试使用ffmpeg编码和流式处理(libavcodec / libavformat-具有Zeranoe构建的MSVC x64)

这是我的代码,大部分从编码示例改编而来,删除了错误处理

#include "stdafx.h"
extern "C" {
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>

#include <libavutil/opt.h>
#include <libavutil/channel_layout.h>
#include <libavutil/common.h>
#include <libavutil/imgutils.h>
#include <libavutil/mathematics.h>
#include <libavutil/samplefmt.h>
}
#pragma comment(lib, "avformat.lib")
#pragma comment(lib, "avutil.lib")
#pragma comment(lib, "avcodec.lib")

int main() {
    avcodec_register_all();
    av_register_all();
    avformat_network_init();

    AVCodecID codec_id = AV_CODEC_ID_H264;
    AVCodec *codec;
    AVCodecContext *c = NULL;
    int i, ret, x, y, got_output;
    AVFrame *frame;
    AVPacket pkt;

    codec = avcodec_find_encoder(codec_id);
    c = avcodec_alloc_context3(codec);

    c->bit_rate = 400000;
    c->width = 352;
    c->height = 288;
    c->time_base.num = 1; …
Run Code Online (Sandbox Code Playgroud)

c++ ffmpeg rtp

5
推荐指数
1
解决办法
3502
查看次数