我自己在使用SRS服务的Ingest功能时发现在读取一个网络摄像头的RTSP流时一直不成功,

具体分析后发现SRS在调用FFmpeg时出了问题:

/usr/local/ffmpeg/bin/ffmpeg -i rtsp://admin:admin123@192.168.50.187:554/profile1 -vcodec copy -acodec copy -f flv -y rtmp://192.168.50.212/live/test

报错如下:

[rtsp @ 0x55842477d740] UDP timeout, retrying with TCP
[rtsp @ 0x55842477d740] method SETUP failed: Unknown Error!
[rtsp @ 0x55842477d740] Could not find codec parameters for stream (Video: h264, none): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Guessed Channel Layout for Input Stream #0.1 : mono
Input #, rtsp, from 'rtsp://admin:admin123@192.168.50.187:554/profile1':
Metadata:
title : profile1
Duration: N/A, start: 0.000000, bitrate: kb/s
Stream #:: Video: h264, none, 90k tbr, 90k tbn, 180k tbc
Stream #:: Audio: pcm_alaw, Hz, mono, s16, kb/s
Output #, flv, to 'rtmp://192.168.50.212/live/test':
Metadata:
title : profile1
encoder : Lavf58.27.103
Stream #:: Audio: pcm_alaw ([][][][] / 0x0007), Hz, mono, s16, kb/s
Stream mapping:
Stream #: -> #: (copy)
Press [q] to stop, [?] for help
[flv @ 0x5584247e5a00] Failed to update header with correct duration.
[flv @ 0x5584247e5a00] Failed to update header with correct filesize.
size= 0kB time=::00.00 bitrate=N/A speed= 0x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

在网上搜了一下,发现命令中强制使用TCP链接就不会报错:

/usr/local/ffmpeg/bin/ffmpeg -rtsp_transport tcp -i rtsp://admin:admin123@192.168.50.187:554/profile1 -vcodec copy -acodec copy -f flv -y rtmp://192.168.50.212/live/test

但是搜了半天也没人解释的清楚为什么,暂且找到相关的两篇记录下来:

https://github.com/ZoneMinder/ZoneMinder/issues/811

http://mamicode.com/info-detail-1871429.html

FFmpeg RTSP流通过UDP传输问题的更多相关文章

  1. ffmpeg接收rtsp流问题

    项目使用mingw环境g++5.3,C++调用ffmpeg接收rtsp流,再通过C#显示.结构上是C#调用C++的so文件,读取得到的视频帧(RGB888格式),通过图片控件显示. 一开始是使用ope ...

  2. FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    前言   ffmpeg播放rtsp网络流和摄像头流.   Demo   使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克     使用ffmpeg播放网络rtsp文件流 ...

  3. nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器

    本文概要: nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择.本文介绍了一种简易方法快速搭建rtmp流媒体服务器,也叫rtsp转播,数据源不是读取文件,而是采用 ...

  4. VS2015编译FFMPEG,修改FFmpeg缓冲区大小解决实时流解码丢包问题,FFmpeg错误rtsp流地址卡死的问题,设置超时

    之前尝试过很多网上利用Windows编译FFmpeg的文章,都没有办法编译X64位的FFmpeg,有些教程中有专门提到编译64位的FFmpeg需要下载mingw-w64-install,但是编译的过程 ...

  5. (原)关于获取ffmpeg解析rtsp流sdp中带有sps,pps的情况

     转载请注明出处:http://www.cnblogs.com/lihaiping/p/6612511.html 今天同事准备在android下使用ffmpeg来获取rtsp流,问我如何获取获取sps ...

  6. ffmpeg强制使用TCP方式读取rtsp流

    ffmpeg强制使用TCP方式处理rtsp流,参考网上资料,得知可以使用如下命令: “ffmpeg -rtsp_transport tcp -i rtsp://admin.......” 可以是使用抓 ...

  7. centos下用ffmpeg推流宇视科技摄像头rtsp流到前端播放(无flash)

    严禁垃圾中文技术网站复制粘贴 流程:安装SRS服务接收ffmpeg的推流,SRS会提供一个flv的播放地址,前端通过fls.js播放即可,无需flash. 1.安装ffmpeg 提供两个版本,都能推流 ...

  8. 浏览器无插件播放rtsp流解决方案

    1. 安装 FFmpeg 参考 CentOS下安装FFmpeg,特别详细. 我遇到的错误和解决办法: 缺少lame ffmpeg+libmp3lame库源码安装教程(CentOS) make ffmp ...

  9. 【转】RTSP流理解

    rtsp是使用udp还是tcp,是跟服务器有关,服务器那边说使用udp,那就使用udp,服务器说使用tcp那就使用tcp rtsp客户端的创建: 1.建立TCP socket,绑定服务器ip,用来传送 ...

随机推荐

  1. opencv:通道的分离与合并

    #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...

  2. Bugku-CTF加密篇之 托马斯.杰斐逊

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdYAAAKLCAYAAABL4qnuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjw ...

  3. The Preliminary Contest for ICPC Asia Xuzhou 2019 K. Center

    这题对于能加入最多边缘点的center点,这个点就是最优的center ,对于center点,总共是n^2的,顶多也就1e6,所以直接双重循环就行了, 然后map<pair,set >映射 ...

  4. oop(面向对象)中的内置函数

    oop中的内置函数 ​ 类中存在一些名字带有双下划线__开头的内置函数, 这些函数会在某些时候被自动调用,例如之前学习的迭代器__init__函数 一.isinstance(obj, cls) 检查o ...

  5. python的爬虫小入门

    爬虫的相关操作 1.爬文本内容 # coding=gbk import requests ##声明相关库 import re response=requests.get('http://duanziw ...

  6. tensorflow按需分配GPU问题

    使用tensorflow,如果不加设置,即使是很小的模型也会占用整块GPU,造成资源浪费. 所以我们需要设置,使程序按需使用GPU. 具体设置方法: gpu_options = tf.GPUOptio ...

  7. 理解Spring 容器、BeanFactory 以及 ApplicationContext

    一.spring 容器理解 spring 容器可以理解为生产对象(Object)的地方,在这里容器不只是帮助我们创建对象那么简单,它负责了对象的整个生命周期-创建.装配.销毁.而这里对象的创建管理的控 ...

  8. LeetCode练题——88. Merge Sorted Array

    1.题目 88. Merge Sorted Array——Easy Given two sorted integer arrays nums1 and nums2, merge nums2 into  ...

  9. (Java多线程系列九)线程池

    线程池 1.什么是线程池 线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建一个线程.线程池中线程的数量通常取决于可用内存数量和应用程序的需求. ...

  10. hexo 搭建静态博客 + Next 主题配置

    参考手册 HEXO:https://hexo.io/zh-cn/ NEXT:http://theme-next.iissnan.com/ 安装hexo npm install hexo-cli -g ...