ffmpeg 推流到 nginx时 , 一段时间后会中断 80C

用 ffmpeg 将 摄像头的rtsp流转成rtmp后推到 nginx服务器 ,
播放器能够正常播放一段时间(一小时左右) , 之后就会出错 ,播放器显示
error loading stream id not found on server .

我查了一下 ffmpeg的输出 .
正常时的输出为:
图片说明

正常播放时 : frame , size 的值都是增加了

播放器无法播放后的输出为
图片说明

无法播放时 : frame ,size 的值都不再增加 , drop值一直增加 , speed 和 biterate与我设置的也不一样 .

推流语句为 :
ffmpeg -i rtsp://192.168.1.224/main_stream -tune zerolatency -vcodec libx264 -preset ultrafast -b:v 400k -s 720x576 -r 25 -f flv rtmp://192.168.1.226:1935/mylive/test2

没有接触过视频处理这些东西 , 有没有兄弟指点一下 ? ?

3个回答

chenshi011
三摆手 回复wendu24: 有没有解决,是什么问题
3 个月之前 回复
cc_lwg
cc_lwg ffmpeg -re -rtsp_transport tcp -i rtsp://192.168.1.224/main_stream -tune zerolatency -vcodec libx264 -preset ultrafast -b:v 400k -s 720x576 -r 25 -f flv rtmp://192.168.1.226:1935/mylive/test2
6 个月之前 回复
wendu24
wendu24 链接没有给回答啊
7 个月之前 回复

ffmpeg -re -rtsp_transport tcp -i rtsp://192.168.1.224/main_stream -tune zerolatency -vcodec libx264 -preset ultrafast -b:v 400k -s 720x576 -r 25 -f flv rtmp://192.168.1.226:1935/mylive/test2

-r 25 是指读取的时候是强制25fps 你推的时候似乎是20fps? 如果是私网的话可能无权限,所以rtsp需要使用 tcp传输
ffmpeg -re -rtsp_transport tcp -i

你要不要试试python 通过管道pipe来进行推流 亲测有效已实现

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ffmpeg推流到指定的服务器
rtmp流媒体服务器启动后,就可以运行如下命令,使用ffmpeg向服务器推流。搭建服务器可以参考这篇文章(点这里)。 ffmpeg -re -stream_loop -1 -i 凉凉-MV.mp4 -vcodec copy -acodec copy -f flv rtmp://localhost:1935/test/live -stream_loop : -1 表示循环推流 -0 表...
ffmpeg 代码实现rtmp推流到服务器
前面2篇已经讲解了如何搭建直播服务器 ffmpeg + nginx配置智播推流服务器和ffmpeg + crtmpserver实现直播推流,并且通过ffmpeg命令实现了推流,下面讲解下如何用代码实现推流,并且通过设置dts来实现推流的速度。 之前也写过,将摄像头的数据保存到本地为mp4:ffmpeg 获取电脑摄像头数据,并且保存为MP4视频,这里其实差不多,只是将输出设备从本地文件mp4 改...
测试ffmpeg推流到RED5(永远的雷神)
从网上下载最新的ffmpeg库(https://ffmpeg.zeranoe.com/builds/),开始测试雷神编写的一个DEMO,根据需要更改了视频流的输入方式,在代码中出现了一个莫名奇妙的问题,后来查ffmpeg文档得到解决,见下图: 代码如下:#include
Window ffmpeg 推摄像头音视频流到服务器
1.获取电脑有哪些摄像机命令: ffmpeg -list_devices true -f dshow -i dummy2.可以通过ffplay工具查看摄像头视频: ffplay -f dshow -i video=”USB2.0 Camera”3.通过ffmpeg推rtmp流到服务器命令: ffmpeg -f dshow -i video=”USB2.0 Camera”:audio=”麦克风
FFMPEG推流到RTMP服务器命令
1、将文件当作源推送到RTMP服务器ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName 参数解释-r 以本地帧频读数据,主要用于模拟捕获设备。表示ffmpeg将按照帧率发送数据,不会按照最高的效率发送 2、将直播文件保存至本地ffmpeg -i rtmp://server/live/streamName
FFmpeg推送rtmp视频流到nginx的问题
FFmpeg将网络摄像机的rtsp视频流转换成rtmp流,然后推送rtmp视频流到nginx上面,然后使用手机播放hls的视频流。n在期间遇到一些问题,总是丢包,我截了个图,请大家帮忙看看是不是我在使用ffmpeg时参数设置的不对啊。n我使用的命令:nffmpeg -i rtsp://admin:12345@172.27.35.56 -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 640x480 rtmp://172.27.35.2:1935/hls/test2n![图片说明](https://img-ask.csdn.net/upload/201502/03/1422933381_314422.jpg)
浏览网页一段时间后会突然中断?
这几天上网挺怪的,上一会儿后,就不能上了,提示:浏览器不能打开搜索页 rn但是:ping 网关通;ping DNS通;ping 新浪通;QQ能上rn有固定ip 通过网卡——交换机——路由——上网rn杀毒-没有rn网卡——交换机——路由-没问题rn只要重启,就好了,但是过段时间,又出现rn各位何解啊?
摄像头推流到rtmp
推流到rtmp,使用opencv摄像头输入,FFMPEG编码,推流到nginx-RTMP服务器,形成直播系统,opencv处理图像很强,可以方便加入各种特效。
ffmpeg应用实例:从拉流到推流(改进版)
说明: 1、使用 rtmp地址 和 rtsp地址 测试,程序可运行,生成的flv文件可用VLC播放器播放; 2、音频和视频有些不同步; 3、网络推流不稳定,还有问题待解决; #include "stdafx.h" extern "C" { #include "libavcodec/avcodec.h" #include "libavformat/avformat.h"
H264 推流到RTMP服务器
参考连接: 基于libRTMP的流媒体直播之 AAC、H264 推送: http://billhoo.blog.51cto.com/2337751/1557646/ 使用librtmp进行H264与AAC直播 http://www.codeman.net/2014/01/439.html 雷博CSDN博客下面是我最近了解PUST H264流到RTMP服务器上的一些笔记,参考了上面的链接,看
ffmpeg学习之-window下编译安装nginx用ffmpeg推抓视频流
https://www.cnblogs.com/qfb620/p/5508468.html
程序运行一段时间后会卡死
在Wince上编了一个软件,功能很简单,保存修改数据到Xml,反应下位机数据到屏上,传递上位机数据给下位机!rn现在程序运行一段时间后会卡死,整个屏幕都动不了了,能力有限,找不到原因出哪了?rn程序中应该只有两个线程,一个UI线程(定时器产生的事件应该属于UI线程的吧?),一个有串口中断产生的线程,希望大家能够给我点解决思路!
使用FFmpeg将视频推流到nginx,通过vlc拉流播放(通过命令的方式)
安装完FFmpeg,nginx,nginx-rtmp-module,vlc后就可以进行推流、拉流测试了。博主的nginx安装在VMWare的Ubuntu中(安装方法可以参考https://blog.csdn.net/u014552102/article/details/86599289),ffmpeg和vlc都安装在windows中(win10)。 一、nginx配置 首先我们得...
nohup后台运行的程序运行一段时间以后会突然中断
写了一个通过udp接受数据然后解析的程序,放在linux上后台运行,可是每次运行十来个小时左右,半夜的时候程序就突然断掉了,rnrn[code=java]logger.debug("数据来源 " + addr + ":" + port);rn rn String [] str3=new String[1024];rn //保持正数rn for(int i=0;i<1024;i++) rn int aa=(int)buf[i];rn if(aa<0) rn int bb=256+aa;rn str3[i]=Integer.valueOf(buf[i]).toHexString(bb);rn elsern str3[i]=Integer.valueOf(buf[i]).toHexString(aa);rn rn rn str1=Arrays.copyOfRange(str3, 0, new String(buf).trim().length());rn rn //保持两位rn for(int i=0;i
为何定时执行一段时间后会失控?
[code=JScript]rnvar gCounter=10;rnfunction Counter()rnrn if(--gCounter)rn rn if(gCounter<0) gCounter=10; // 防止gCounter变负数rn rn elsern rn var now = new Date();rn var obj;rn obj = document.getElementById("Ha_Line"); rn if(obj) obj.src = "../vnphp/zsRealLine.php?mark="+now.getTime();rn obj = document.getElementById("Ha_Data"); rn if(obj) obj.src = "../vnphp/zsRealData.php?mark="+now.getTime();rn gCounter=10;rn rnrnsetInterval("Counter()",1000);rn[/code]rnrn这段程序,开始执行是正常的,但是时间一长,半个小时以后,定时就会失控,发现连续打开链接,密度小于1秒,不会是gCounter等于0导致的。rnrn不知道是什么原因?rn
为什么程序运行一段时间后会自动关闭。
ThreadProc PROC USES edi Param:DWORD rn.while TRUErn invoke GetLocalTime,addr SysTimern ;得到系统时间的秒,分,时,分别在7段数码管中显示rn ;Code7 db 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH rn ; 0 1 2 3 4 5 6 7 8 9 rn ;Code7是1,2,。。9的数码管编码rn ;Led7 db 6 dup(?)rn ;Led7 存储对应秒,分,时的数码管编码rn xor eax,eaxrn xor ebx,ebxrn xor ecx,ecxrn mov ax,SysTime.wSecondrn DIV RADIX ;RADIX = 10rn mov bh,00Hrn mov bl,ah ;ah中存有秒数的个位数rn mov ch,Code7[ebx] rn mov Led7+0,chrn mov bl,al ;al中存有秒数的十位数rn mov ch,Code7[ebx]rn mov Led7+1,chrn rn mov ax,SysTime.wMinutern DIV RADIXrn mov bh,00Hrn mov bl,ah ;ah中存有分的个位数rn mov ch,Code7[ebx]rn mov Led7+2,chrn mov bl,al ;al中存有分的十位数rn mov ch,Code7[ebx]rn mov Led7+3,chrnrn mov ax,SysTime.wHourrn DIV RADIXrn mov bh,00Hrn mov bl,ah ;ah中存有小时的个位数rn mov ch,Code7[ebx]rn mov Led7+4,chrn mov bl,al ;al中存有小时的十位数rn mov ch,Code7[ebx]rn mov Led7+5,chrn invoke pcicard_iowrite,01H,00H ;调用的DLL函数rn mov bl,CountIrn mov bh,00Hrn mov cl,Led7[ebx]rn mov Led7I,clrn invoke pcicard_iowrite,00H,Led7I ;调用的DLL函数rn rn mov al,CountIrn .while al!=0rn shl Sel,1rn dec alrn .endwrn rn invoke pcicard_iowrite,01H,Selrn mov Sel,01Hrn .while k < 50000rn inc krn dec krn inc krn .endwrn mov k,0rn rn .if CountI == 5rn mov CountI,0rn .elsern inc CountIrn .endif rn rn.endwrn retrnThreadProc endprn程序运行主要是数码管上显示系统时间,但是好像每次都是运行同一段时间后程序自动关闭。rn用VC加载.exe后调试窗口出现rnThe thread 0xC80 has exited with code 0 (0x0).rnThe thread 0xA24 has exited with code 0 (0x0).rnThe program 'D:\masm32\StaDigital.exe' has exited with code 0 (0x0).
REST与SpringMVC(整理中)
整理中
ffmpeg 推流命令
1.将摄像头推流到hlsffmpeg -f vfwcap -i &quot;0&quot; -c:v libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/hls/homehttp://localhost:8080/hls/home.m3u8 是播放地址2.将视频文件推流到hlsffmp...
ffmpeg转码推流
可以安装ffmpeg,进行配置,可以使用命令行进行音视频的编解码
Lucene.Net运行一段时间后会关闭
Lucene.Net连续搜索一段时间后,就会显示错误rnrn 在 Lucene.Net.Index.CompoundFileReader.Close()rn 在 Lucene.Net.Index.SegmentReader.DoClose()rn 在 Lucene.Net.Index.IndexReader.Close()rn 在 Lucene.Net.Search.IndexSearcher.Close()rnrn怎么处理?
程序运行一段时间后会挂死
我的应用在solaris/linux/hp操作系统下都能正常运行,但在aix下,运行一段时间就会挂死,每次挂死都在同一地方。刚开始时使用线程默认堆栈大小,程序仅能运行1天左右,后来设置堆栈大小为1M,则程序能运行6天左右。现在改为2M,则能运行12天。我就有点纳闷,在其它操作系统下都能正常工作,为什么在aix就运行不正常,难道线程堆栈不能被重复使用,还是有什么参数我没有设置,导致在线程运行一段时间后再分配内存时就会被挂死。rn 我使用pthread_attr_setstacksize()来设置线程堆栈大小。编译器使用VisualAge 8,操作系统版本AIX 5.3。rn 虽然以前也有人提到了类似的问题,但通过扩大线程堆栈大小不能从根本上解决问题,是不是还有什么系统参数没有设置,因为我确信我们的程序应该没有问题,在其它的操作系统下都能正常运行。rn 谁能给指点迷津,在此多谢了!
ffmpeg工具推流
SRR测试网址 http://www.ossrs.net/srs.release/trunk/research/players/srs_player.html 获取 git clone https://github.com/ossrs/srs.git configure make cd srs/trunk ./configure &amp;amp;&amp;amp; make 开启服务器 ./ob...
ffmpeg推流报错
在使用dshow设备推流时,经常会报出real time buffer too full dropping frames的错误信息,其原因在这篇文章里有写到,可以通过添加rtbufsize参数来解决,码率越高对应的rtbufsize就需要越高,但过高的rtbufsize会带来视频的延时,若要保持同步,可能就需要对音频人为增加一定的延时。而根据我的测试,即使不添加rtbufszie参数,虽然会报出错...
推流器ffmpeg
ffmpeg资源推流器,使用方式: 客户端:输入:视频名称,视频必须放在目录下面, 输出:里面有 在电脑端,可以用ffplay 进行播放
ffmpeg视频推流
ffmpeg视频推流,里面用map封装好了,只需要填相应的视频流地址以及需要ffmpeg名字就可以用
利用EasyRTSTClient推海康视频流到EasyDarwin
实现把海康的视频流推送到EasyDarwin服务器中,并可以通过VLC播放。 提醒:你得很搭好EasyDarwin服务器
opencv采集视频推流到rtmp服务器,nginx+rtmp
输入源:opencv摄像头采集,或者本地视频以及网络摄像头 输出:推流到nginx+rtmp服务器
ffmpeg推流器
av_strerror(errorCode, char *buf, int buf_len); //可以用于转换ffmpeg返回的错误码,转换为字符信息`` int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd); //它的作用是计算 "a * b / c" 的值并分五种方式来取整.
ffmpeg推流命令
常用测试命令: 1、将文件当做直播送至live ffmpeg -re -stream_loop -3 -i D:\shipin\邪恶力量456.mp4 -vcodec libx264 -acodec aac -f flv rtmp://10.125.196.20:50015/live/354?token=d42e1650692712bcc2f168e0fdd31ac7 -re 将文件做
ffmpeg推流
推流本地文件 ffmpeg -re -i /home/centos7/live.wmv -vcodec libx264 -acodec aac -f flv rtmp://192.168.1.103:1935/rtmplive/home libx264 转码器 -vcodec 视频编码 -acodec 音频编码 aac 音频格式 flv 视频格式 Linux推流桌面 f
ffmpeg 直播推流
直播推流, 是很复杂,只是简单的使用也可以, 除了VLC 别人家的底层 应该都使用的是这个
FFmpeg推流
首先确保自已已经安装了nginx + rtmp服务器。 打开配置文件nginx.conf 完成如下配置 1.推流MP4文件 视频文件地址:/Users/xu/Desktop/bangbangbang.mp4 推流拉流地址:rtmp://localhost:1935/rtmplive/home acc:RTMP的音频格式 flv: RTMP的视频格式ffmpeg -re
ffmpeg4教程7:本地文件推流到rtmp
基于vs2017 vc++  ffmpeg4.0.2下测试 ffmpeg 环境配置请百度(vs2017 ffmpeg )  部分方法在https://blog.csdn.net/Java_lilin/article/details/85118365中查找   #include &quot;pch.h&quot; #include &amp;lt;iostream&amp;gt; extern &quot;C&quot; { #include ...
ffmpeg从网上保存视频流到本地文件
DTS 解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据 PTS 显示时间戳这个时间戳用来告诉播放器该在什么时候显示这一帧的数据 dts 解码参考时间,pts是预览参考时间, 在没有B帧的情况下,pts=dts 在有B帧的情况下 同一帧才可能带有不同的dts 和pts 要等到下一帧才能解码,但是显示时间在前面//记一些重要函数 //转换时间基
C# FFmpeg保存rtsp视频流到本地文件
C# 使用FFmpeg库保存rtsp视频流为本地文件,获取摄像头rtsp视频流地址可以参考我的另一个资源
用ffmpeg封装h264流到MP4的问题
大家好,我刚接触视频这方面,很没基础,现在项目需要把从设备获取的实时H264的流封装成MP4格式,我用的是FFMPEG这个库,现在的问题是我们的输入和输出没有被封装的痕迹,我贴一些关键的代码,大家帮忙分析一下谢谢了!!rnrn初始化代码rn[code=C/C++]rn av_register_all();rn fmt = guess_format(NULL, outfile, NULL);rn oc = av_alloc_format_context();rn oc->oformat = fmt;rn rn snprintf(oc->filename, sizeof(oc->filename), "%s", outfile);rnrn video_st = NULL;rn audio_st = NULL;rn rn if (fmt->video_codec != CODEC_ID_NONE) rn video_st = add_video_stream(oc, fmt->video_codec);rn rnrn if (av_set_parameters(oc, NULL) < 0) rn fprintf(stderr, "Invalid output format parameters\n");rn exit(1);rn rn rn if (video_st)rn open_video(oc, video_st);rn rnrn if (!(fmt->flags & AVFMT_NOFILE)) rn if (url_fopen(&oc->pb,outfile, URL_WRONLY) < 0) rn fprintf(stderr, "Could not open '%s'\n", outfile);rn exit(1);rn rn rnrn if(av_write_header(oc) < 0)rn PRINTF("av_write_header failed\n"); rn return -1;rn rnrn for(;;) rn /* compute current audio and video time */rn rn if (audio_st)rn audio_pts = (double)audio_st->pts.val * audio_st->time_base.num / audio_st->time_base.den;rn elsern audio_pts = 0.0;rnrn if (video_st)rn video_pts = (double)video_st->pts.val * video_st->time_base.num / video_st->time_base.den;rn elsern video_pts = 0.0;rnrn /* write interleaved audio and video frames */rn if (!video_st || (video_st && audio_st && audio_pts < video_pts)) rn PRINTF("write_audio_frame\n");// write_audio_frame(oc, audio_st);rn else rn write_video_frame(oc, video_st,fd,&msg,1080,720);rn rn rn[/code]rn然后主要是在write_video_frame里面rn[code=C/C++]static void write_video_frame(AVFormatContext *oc,AVStream *st,int fd,avs_un_msg_t *msg,\rn int width,int height)rn int out_size,ret;rn AVCodecContext *c;rn AVPacket pkt;rn c = st->codec;rnrn fill_yuv_image(picture,fd,msg,c->width,c->height);rn if(write(FD1,picture->data[0],msg->extra) > 0)rn PRINTF("write to FD1\n");rn av_init_packet(&pkt);rn rn //pkt.pts = msg->u.d4t[1];rn pkt.flags |= PKT_FLAG_KEY;rn pkt.stream_index = st->index;rn pkt.data = (uint8_t *)picture->data[0];//注意这里,原样输出rn pkt.size = msg->extra;//sizeof(AVPicture);rn rn ret = av_write_frame(oc,&pkt);rnrn //oc->oformat = oc->oformat->next;rn if(ret != 0)rn fprintf(stderr,"Error while writing video frame\n"); rn exit(1);rn rn av_free_packet(&pkt);rn //frame_count++;rn[/code]rnfill_yuv_image函数是把我们接收到的实时数据封装到一个AVPicture结构里rn[code=C/C++]rnstatic int fill_yuv_image(AVFrame *pic,int fd,avs_un_msg_t *msg,int width,int height)rn int err;rn rn bzero(extradata,MAX_AVS_UN_MSG_EXTRA);rn err = avs_un_recv_msg(fd,msg);rn err = avs_un_recv_msg_extra(fd,msg,extradata);rn rn if(err > 0)rn printf("recv extradata %d\n",err);rn if(write(FD2,extradata,err) > 0)rn PRINTF("write to FD2\n");rn if(avpicture_fill((AVPicture *)pic,extradata,PIX_FMT_YUV420P,width,height) < 0)rn PRINTF("avpicture_fill failed\n"); rn return -1;rn rn elsern PRINTF("avs_un_recv_msg_extra failed\n"); rn return -1;rn rn return 0;rnrn[/code]rn主要代码就是这些了,其他都是一些库函数的调用
Windows下FFmpeg之保存网络流到本地文件
视频教程来自王纲,在此记录下,方便以后使用 头文件 pch.h #ifndef PCH_H #define PCH_H extern &quot;C&quot; { #include &quot;include\libavutil\opt.h&quot; #include &quot;include\libavutil\channel_layout.h&quot; #include &quot;include\libavutil\common.h&quot; #in...
搭建nginx rtmp直播服务器,ffmpeg模拟推流
原文:http://cxuef.github.io/linux/%E3%80%90%E7%BD%AE%E9%A1%B6%E3%80%91%E6%90%AD%E5%BB%BAnginx-rtmp%E7%9B%B4%E6%92%AD%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8Cffmpeg%E6%A8%A1%E6%8B%9F%E6%8E%A8%E6%B5%81/
ffmpeg rtmp推流 nginx搭建的rtmp服务器
1、利用nginx搭建的rtmp服务器 下载nginx-rtmp-module模块,解压 下载nginx,解压 进入nginx目录下,编译安装nginx支持rtmp流媒体配置 ./configure --add-module=../nginx-rtmp-module-master $ make $ sudo make install 打开nginx配置文件
centos7服务器搭建nginx环境,ffmpeg实现本地模拟推流
zlib、PCRE、OpenSSL Nginx、rtmp、openssl nginx下载地址 http://nginx.org/en/download.html 下载版本 http://nginx.org/download/nginx-1.12.2.tar.gz 下载命令 wget http://nginx.org/downlo
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池