使用 Java 通过 RTP 发送/接收音频数据的最佳方式是什么?我读过一些关于JMF 的内容,但它似乎已经过时了。还有其他可行的替代方案吗?
我需要拆分mpeg4视频流(实际上来自Android视频摄像头)通过RTP发送它.规格有点大,无法快速参考.
我想知道是否有任何mpeg4打包的示例/开源代码?
谢谢你的帮助 !
我必须计算RTP流中的数据包之间的时间偏移.使用Theora编解码器编码的视频流我有时间戳字段
2856000
2940000
3024000
...
Run Code Online (Sandbox Code Playgroud)
所以我假设传输偏移是84000.使用音频speex编解码器我有时间戳字段
38080
38400
38720
...
Run Code Online (Sandbox Code Playgroud)
所以我假设传输偏移是320.为什么值如此不同?它们是微秒,毫秒还是什么?我可以推广一个公式来计算与任何编解码器一起使用的数据包之间的延迟(以微秒为单位)吗?谢谢.
我正在通过RTSP从IP摄像头捕获JPEG图像.我使用live555 + libavcodec来流式传输和解码MJPEG图像.流可以很好地工作到图像分辨率2048 x 1920.但是当我将图像宽度增加到2048以上时,我得到一个宽度非常小的条形矩形图像(即544x1920).图像被正确捕获并保存在相机上.仅当我通过RTSP将图像流式传输到PC时才会出现此问题.对于高分辨率MJPEG,RTP中是否存在任何有效载荷限制?
摄像机正在通过本地端口上的UDP将视频数据作为RTP发送给我。
ffmpeg是否支持将输入(H.264有效负载)自动转换为MP4?
怎么做 ?
我一直在寻找RTCPeerConnection使用WebRTC以分散的方式建立一个.这意味着仅使用服务器进行NAT遍历.
我知道信令过程是必要的,但是可以直接与对等方交换RTCSessionDescription对象,而不必使用其他通信信道吗?
我对I,P,B帧及其时间戳有疑问.
我知道RTP数据包的时间戳假设是单调增加的.我也知道(纠正我,如果我错了)在h.264 B_5帧中可以在P_4帧之前发送但在(P_4然后是B_5)之后显示,因此解码器将使用B帧来解码P帧.
我有一个RTP\H.264流的pcap捕获,我可以看到时间戳增加\减少...而不是单调增加.
所以我的问题是什么值的RTP数据包(I,P,B帧)应该在h264传输上得到什么?
我很乐意对此事做一些澄清.
谢谢.
现在我测试webrtc与SIP客户端通信(sx20)
我用webrtc sdp发送邀请信息.但是sip客户端的答案没有指纹,而且
sip客户端答案不是SRTP只是RTP.
所以我需要在WEBRTC中关闭SRTP.我可以做吗?
还有一个问题......我认为,指纹是加密密钥,
因此,发送方和接收方需要每个密钥吗?我们需要两把钥匙?发件人的密钥,收到密钥?或者我们只需要发件人的钥匙?
我想知道导致DTLS-SRTP成为保护WebRTC中媒体的方法的原因.
我认为最好在信令平面之外交换SRTP密钥材料,但为什么不允许其他方法如SDES呢?对我来说,它似乎比通过DTLS握手更快,并且如果你可以保证信令通道是安全的那样,就像DTLS-SRTP一样安全......
我正在尝试在我的应用程序中读取音频 RTP 流,但出现此错误:
[pcm_mulaw @ 03390580] PCM channels out of bounds
Run Code Online (Sandbox Code Playgroud)
我可以用 ffplay 很好地读取 RTP 流:
ffplay -i test.sdp -protocol_whitelist file,udp,rtp
Run Code Online (Sandbox Code Playgroud)
我使用以下命令生成 RTP 流:
ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -ar 8000 -f mulaw -f rtp rtp://127.0.0.1:8554
// SDP
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 127.0.0.1
t=0 0
a=tool:libavformat 57.25.101
m=audio 8554 RTP/AVP 0
b=AS:64
Run Code Online (Sandbox Code Playgroud)
这是我的源代码:
#include "stdafx.h"
#include <math.h>
extern "C"
{
#include <libavutil/opt.h>
#include <libavcodec/avcodec.h>
#include <libavutil/channel_layout.h>
#include <libavutil/common.h>
#include <libavutil/imgutils.h>
#include <libavutil/mathematics.h> …Run Code Online (Sandbox Code Playgroud)