标签: rtp

在HTML5中通过RTSP或RTP进行流式传输

我正在构建一个Web应用程序,它应该从服务器http://lscube.org/projects/feng回放RTSP/RTP流.

HTML5视频/音频标签是否支持rtsp或rtp?如果没有,最简单的解决方案是什么?也许下载到VLC插件或类似的东西.

video streaming html5 rtp rtsp

147
推荐指数
7
解决办法
43万
查看次数

流媒体服务器中的RTP或RTSP有什么区别?

我正在考虑开发流媒体服务器,我有以下问题,通过RTSP(例如url:)rtsp://192.168.0.184/myvideo.mpgRTP(例如url:)rtp://192.168.0.184.

据我所知,RTSP服务器主要用于已经存在的文件的流式传输,即不是实时的.RTP服务器用于广播.

如果我错了,有人会纠正我,对吗?

我想开发一个服务器来在计算机屏幕上播放实时内容,即在流媒体广播时显示的内容.

streaming rtp rtsp live-streaming

57
推荐指数
4
解决办法
10万
查看次数

如何处理原始UDP数据包,以便它们可以通过directshow源过滤器中的解码器过滤器进行解码

很长的故事:

  1. 有一个H264/MPEG-4源
  2. 我可以将此源与RTSP协议连接起来.
  3. 我能够使用RTP协议获取原始UDP数据包.
  4. 然后将这些原始UDP数据包发送到解码器[h264/mpeg-4] [DS源过滤器]
  5. 但是这些"原始"UDP数据包无法通过解码器[h264/mpeg-4]过滤器进行解码

不久:

如何处理这些原始UDP数据以便通过H264/MPEG-4解码器过滤器进行解码?任何人都可以清楚地确定我与H264/MPEG流有关的步骤吗?

额外信息:

我可以用FFmpeg做到这一点......但是我无法弄清楚FFmpeg如何处理原始数据以便解码器可以解码.

directshow rtp rtsp h.264 mpeg-4

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

将视频输入流转换为RTMP

我想将视频录制从我的Android手机流式传输到网络媒体服务器.

第一个问题是,当将MediaRecorder输出设置为套接字时,流会丢失一些mdat大小的标头.这可以通过在本地预处理该流并将丢失的数据添加到流中以便生成有效的输出流来解决.

问题是如何从那里开始.

如何将该流作为RTMP流输出?

video streaming android rtmp rtp

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

最好的C++ RTP/RTSP库

我正在寻找C++中的RTP/RTSP库.我找到了pjsip,但它更像C风格.我正在寻找更多的OO库.

c++ udp sip rtp rtsp

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

MediaCodec和Camera:颜色空间不匹配

我一直在尝试使用新的低级MediaCodec,在Android平板电脑上使用H264编码来处理摄像头捕获的输入.我已经遇到了一些困难,因为MediaCodecAPI的文档很少,但我终于有了一些工作要做.

我按如下方式设置相机:

        Camera.Parameters parameters = mCamera.getParameters();
        parameters.setPreviewFormat(ImageFormat.YV12); // <1>
        parameters.setPreviewFpsRange(4000,60000);
        parameters.setPreviewSize(640, 480);            
        mCamera.setParameters(parameters);
Run Code Online (Sandbox Code Playgroud)

对于编码部分,我正在实例化MediaCodec对象,如下所示:

    mediaCodec = MediaCodec.createEncoderByType("video/avc");
    MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", 640, 480);
    mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 500000);
    mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15);
    mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT,
            MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar); // <2>
    mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
    mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
    mediaCodec.start();
Run Code Online (Sandbox Code Playgroud)

最终目标是创建一个RTP流(并与Skype对应),但到目前为止,我只是将原始H264直接流式传输到我的桌面.在那里,我使用以下GStreamer管道来显示结果:

gst-launch udpsrc port=5555 ! video/x-h264,width=640,height=480,framerate=15/1 ! ffdec_h264 ! autovideosink
Run Code Online (Sandbox Code Playgroud)

一切都很好,除了颜色.我需要在计算机中设置2个颜色格式:一个用于摄像头预览(行标记<1>)和一个用于MediaCodec对象(标记为<2>)

确定<1>我使用的线的可接受值parameters.getSupportedPreviewFormats().据此,我知道相机上唯一支持的格式是ImageFormat.NV21ImageFormat.YV2.

<2>,我检索的MediaCodecInfo.CodecCapabilities -object类型视频/ AVC,作为整数值与对应19(MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar和2130708361(其不与任何值对应MediaCodecInfo.CodecCapabilities).

除上述之外的任何其他值都会导致崩溃.

结合这些设置会得到不同的结果,我将在下面展示.这是Android上的屏幕截图(即"真实"颜色): 在Android平板电脑上输入 以下是Gstreamer显示的结果:

<1> …

android colors rtp gstreamer h.264

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

为什么RTP使用UDP而不是TCP?

我想知道为什么在RTP而不是TCP中使用UDP?主要的VoIP工具只使用UDP,因为我攻击了一些VoIP OSS.

networking voip udp protocols rtp

30
推荐指数
4
解决办法
7万
查看次数

检测RTP流中的MPEG4/H264 I帧(IDR)

我需要检测RTP数据包中的MPEG4 I帧.我知道如何删除RTP标头并获取其中的MPEG4帧,但我无法弄清楚如何识别I帧.

它有特定的签名/标题吗?

rtp rtsp

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

我可以使用WebRTC接收标准RTP视频流吗?

我在同一个网络上有两台计算机.其中一个用RTP协议发送电影(H264).是否可以创建一个简单的JavaScript应用程序来在第二台计算机上接收此流并显示在视频标签中?

到目前为止,我对WebRTC的印象是它被设计用于浏览器之间(都使用WebRTC api),但我只想在接收端使用它.

javascript rtp webrtc

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

接收RTP流 - AudioStream,AudioGroup

我想听一个RTP音频流,但是它的声音几乎没有差距 - 不会继续.可能是什么解决方案?我在Receiver(android)方面或Streamer(ffmpeg)方面遗漏了什么?

我正在使用ffmpeg来传输RTP音频,

ffmpeg -f lavfi -i aevalsrc="sin(400*2*PI*t)" -ar 8000 -vcodec pcm_u8 -f rtp rtp://192.168.0.15:41954 (port changes.)
Run Code Online (Sandbox Code Playgroud)

这是我的相关android代码:

AudioStream audioStream;
AudioGroup audioGroup;
@Override
public void onStart() {
    super.onStart();
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
    StrictMode.setThreadPolicy(policy);
    AudioManager audio = (AudioManager)getSystemService(AUDIO_SERVICE);
    audio.setMode(AudioManager.MODE_IN_COMMUNICATION);
    audioGroup = new AudioGroup();
    audioGroup.setMode(AudioGroup.MODE_ECHO_SUPPRESSION);
    InetAddress inetAddress;
    try {
        inetAddress = InetAddress.getByName("192.168.0.15");
        audioStream = new AudioStream(inetAddress);
        audioStream.setCodec(AudioCodec.PCMU);
        audioStream.setMode(RtpStream.MODE_NORMAL);
        InetAddress inetAddressRemote = InetAddress.getByName("192.168.0.14");
        audioStream.associate(inetAddressRemote, 6000);
        ((TextView)findViewById(R.id.tv_port)).setText("Port : " + String.valueOf(audioStream.getLocalPort()));
        audioStream.join(audioGroup);
    }
    catch ( UnknownHostException e ) {
        e.printStackTrace();
    }
    catch …
Run Code Online (Sandbox Code Playgroud)

audio android ffmpeg rtp audio-streaming

22
推荐指数
1
解决办法
6728
查看次数