ffmpeg--http


http_connect
1 准备请求头:
先组装http请求,如:"GET /otv/wxty/live/channel01/1300/20180129/20180129T152040.ts HTTP/1.1\r\nUser-Agent: Lavf/57.41.100\r\nAccept: */*\r\nConnection: close\r\nHost: gsports.livebak.ali.otvcloud.com\r\nIcy-MetaData: 1\r\n\r\n"
2 发送请求:
最终调用http的send(tcp.c的tcp_send)。
3 接收数据:
   /* wait for header */
    err = http_read_header(h, new_location);
此函数调用http_get_line,最终会调用tcp的read(tcp.c的tcp_read), 得到tcp回复,数据存放在HTTPContext *s = h->priv_data; s为URLContext格式。
数据内容例子如下:
HTTP/1.1 206 Partial Content\r\nServer: Tengine\r\nContent-Type: audio/x-mpegurl\r\nContent-Length: 229\r\nConnection: close\r\nDate: Mon, 29 Jan 2018 07:08:01 GMT\r\nLast-Modified: Mon, 29 Jan 2018 07:08:00 GMT\r\nETag: \"5a6ec850-e5\"\r\nAccept-Ranges: bytes\r\nVia: cache18.l2et15-2[11,200-0,M], cache31.l2et15-2[13,0], cache8.cn497[0,206-0,H], cache2.cn497[1,0]\r\nAge: 2\r\nX-Cache: HIT TCP_MEM_HIT dirn:-2:-2 mlen:-1\r\nX-Swift-SaveTime: Mon, 29 Jan 2018 07:08:02 GMT\r\nX-Swift-CacheTime: 2\r\nContent-Range: bytes 0-228/229\r\nTiming-Allow-Origin: *\r\nEagleId: b4a39f4215172096833247952e\r\n\r\n#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-TARGETDURATION:3\n#EXT-X-MEDIA-SEQUENCE:5892\n#EXTINF:2.000000,\n1300/20180129/20180129T150754.ts\n#EXTINF:2.000000,\n1300/20180129/20180129T150756.ts\n#EXTINF:2.000000,\n1300/20180129/20180129T150758.ts\n"

问题:

HTTP error 404 Not  Found

代码位置:

 static int check_http_code(URLContext *h, int http_code, const char *end)
{
    HTTPContext *s = h->priv_data;
    /* error codes are 4xx and 5xx, but regard 401 as a success, so we
     * don't abort until all headers have been parsed. */
    if (http_code >= 400 && http_code < 600 &&
        (http_code != 401 || s->auth_state.auth_type != HTTP_AUTH_NONE) &&
        (http_code != 407 || s->proxy_auth_state.auth_type != HTTP_AUTH_NONE)) {
        end += strspn(end, SPACE_CHARS);
        av_log(h, AV_LOG_WARNING, "HTTP error %d %s\n", http_code, end);
        return ff_http_averror(http_code, AVERROR(EIO));
    }
    return 0;
}

也就是HTTP的404错误,找不到文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山西茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值