rtcp rtp by rtsp open on ffmpeg
来源:互联网 发布:小猪cms最新源码下载 编辑:程序博客网 时间:2024/06/06 17:54
1. call stack
avformat_open_input() {
init_input(); // get s->iformat if s->iformat is NULL.
s->iformat->read_header(s) // rtsp_read_header { // ff_rtsp_demuxer
ff_rtsp_connect() {
if (rt->control_transport == RTSP_MODE_TUNNEL) { // rtsp over http
// GET request
ffurl_connect(rt->rtsp_hd, NULL);
// POST request
ff_http_init_auth_state(rt->rtsp_hd_out, rt->rtsp_hd);
ffurl_connect(rt->rtsp_hd_out, NULL);
}
else { // rtsp directly connect by tcp
ffurl_open(&rt->rtsp_hd, tcpname, AVIO_FLAG_READ_WRITE,
&s->interrupt_callback, NULL); // setup rtsp connection
}
for (rt->server_type = RTSP_SERVER_RTP;;) {
ff_rtsp_send_cmd(s, "OPTIONS", rt->control_uri, cmd, reply,
NULL); // send OPTIONS command, and get response
ff_rtsp_setup_input_streams(s, reply);
// send DESCRIBE command, and get response,
// if not authed, resend describe with auth
}
do {
// send SETUP commands, and setup rtp, rtcp connection
err = ff_rtsp_make_setup_request(s, host, port, lower_transport,
rt->server_type == RTSP_SERVER_REAL ? real_challenge : NULL); {
while (j <= rt->rtp_port_max) {
ffurl_open(&rtsp_st->rtp_handle, buf, AVIO_FLAG_READ_WRITE,
&s->interrupt_callback, NULL); { // mark 1
ffurl_connect() {
uc->prot->url_open() // rtp_open { // ff_rtp_protocol, mark 2
build_udp_url(buf, sizeof(buf), hostname, rtp_port,
local_rtp_port, ttl, max_packet_size, connect);
ffurl_open(&s->rtp_hd, buf, flags,
&h->interrupt_callback, NULL) {
ffurl_connect() {
uc->prot->url_open2(); // udp_open
// ff_udp_protocol
}
}
build_udp_url(buf, sizeof(buf), hostname, rtcp_port,
local_rtcp_port, ttl, max_packet_size, connect);
ffurl_open(&s->rtcp_hd, buf, flags,
&h->interrupt_callback, NULL) {
ffurl_connect() {
uc->prot->url_open2(); // udp_open
// ff_udp_protocol
}
}
} // mark 2
}
} // ffurl_open, mark 1
// send SETUP command, and get Response.
ff_rtsp_send_cmd(s, "SETUP", rtsp_st->control_url, cmd, reply, NULL);
}
}
} while while (err);
}
rtsp_read_play(s); // send PLAYcommands
}
} // avformat_open_input
- rtcp rtp by rtsp open on ffmpeg
- rtcp rtp by rtsp open on ffmpeg
- RTP/RTCP/RTSP
- RTP/RTCP/RTSP
- RTP/RTCP/RTSP协议
- RTP/RTCP/RTSP协议
- RTP/RTCP/RTSP
- RTP RTCP RTSP
- RTP RTCP RTSP
- RTP RTCP RTSP简介
- RTP RTSP RTCP资料
- RTP、RTCP、RTSP基础知识
- RTP RTSP RTCP资料
- RTP/RTSP/RTCP
- RTP/RTCP/RTSP协议
- RTMP/RTP/RTSP/RTCP
- RTP、RTCP、RTSP 概念
- RTP/RTCP 和 RTSP
- 使用TextView/EditText应该注意的地方
- JAVA正则表达式 Pattern和Matcher
- 30大最有影响力的Web设计与开发英文博客
- Modules you should know in Python Libray
- JAVA中使用JSON进行数据传递
- rtcp rtp by rtsp open on ffmpeg
- [MTK] MT6589 DSI Video Mode的屏,加入ESD机制后每隔2S会闪一下屏(情形一)
- SQLite数据库中的SQL语句
- less
- java 中 synchronized (class) 是什么意思
- [编程题]用递归求数组最大值的位置(索引,下标)
- 联通超级战舰W910 Root 后不能 上网 解决方案
- ios学习之 UIButton详解
- 理解 Android 上的安全性