关于使用ffmpeg播放rtsp h264视频流会出现花屏问题 [问题点数:20分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:2
Bbs7
本版专家分:14700
Bbs1
本版专家分:0
利用ffmpeg解码H264,花屏
[code=c]rnUINT CMP4File::VideoCap_Thread_Fun(void* pParam)rnrn CMP4File *pMP4File=(CMP4File*)pParam;rnrn //初始化AVPacketrn av_init_packet(&pMP4File->m_AVPacket);rnrn int nFrameFinished = 0;rnrn while(true)rn rn rn rn if(av_read_frame(pMP4File->m_pFormatCtx, &(pMP4File->m_AVPacket)) >=0) rn int nDecodeResult=avcodec_decode_video2(pMP4File->m_pCodecContext, pMP4File->m_pFrame,rn &nFrameFinished, &(pMP4File->m_AVPacket));rnrn rn rn if(nDecodeResult>0)rn rn if(nFrameFinished>0)rn rn rn int iReturn=sws_scale(pMP4File->m_pSwsContext, pMP4File->m_pFrame->data,rn pMP4File->m_pFrame->linesize, 0, pMP4File->m_nFrameHeight,rn pMP4File->m_pRGBFrame.data, pMP4File->m_pRGBFrame.linesize);rnrn rn AVFRAME_INFO pFrame;rn memset(&pFrame, 0, sizeof(AVFRAME_INFO));rnrn int m=1980, n=1080;rn pFrame.uWidth=pMP4File->m_nFrameWidth;rn pFrame.uHeight=pMP4File->m_nFrameHeight;rnrnrnrn //显示rn unsigned char* outStream = (unsigned char*)(pMP4File->m_pRGBFrame.data[0]);rnrn pMP4File->Drawer(&pFrame, outStream);rnrn av_free_packet(&pMP4File->m_AVPacket);rn rn rn //ifrn rnrn rnrn return 0;rnrnrn[/code]rnrn1 <em>花屏</em>的原因rn2 <em>视频</em>的类型,如H264、MPEG,<em>视频</em>流的长度,在那个函数获得?rn3 其实是<em>播放</em>MP4文件,提供解码MP4文件类似的代码吗?rn谢谢!
h264视频出现花屏是什么原因?
不定时<em>出现</em>,现象如下,rn应该不是丢帧的<em>问题</em>,因为截图的时间显示还是正常的rnrn[img=http://farm3.static.flickr.com/2300/3544474311_3d8158310e_o.jpg][/img]
android ffmpeg rtsp播放
android 移值<em>ffmpeg</em>源码,实现了<em>ffmpeg</em>实时<em>播放</em><em>rtsp</em>等文件
ffmpeg 播放RTSP 资料收集
    RTSP再学习 -- 利用FFmpeg 将 <em>rtsp</em> 获取H264裸流并保存到文件中 :   :范例和代码 FFmpeg 获取RTSP传过来的<em>视频</em>数据并保存成文件 : 范例和代码   <em>ffmpeg</em> <em>播放</em><em>rtsp</em>流认证<em>问题</em>   : 如何支持摘要认证。 :<em>rtsp</em>://username:passwd@10.10.129.188:554/Streaming/Channels/101?...
QT FFMPEG播放H264
QT框架下利用<em>ffmpeg</em>, <em>播放</em>H264,
ffmpeg 解码h264视频问题
rn 我自己编译了vlc,vlc中解码部分用的是<em>ffmpeg</em>吧,rn 编译成功后,发现有的<em>h264</em><em>视频</em>不能放。rnrn 能放的<em>视频</em>的编码信息如下:rn流0:rn 类型:<em>视频</em>rn 编码:H264-MPEG-4 AVC (part 10)(avc1)rn 语言:Englishrn 分辨率:480*360rn 帧率:25rn流1:rn 类型:音频rn 编码:MPEG AAC Audio(mp4a)rn 语言:Englishrn 声道:立体声rn 采样率:44100HZrn rn不能放的<em>视频</em>的编码信息如下:rn流0:rn 类型:音频rn 原始 ID:68rn 编码:MPEG Audio layer 1/2/3 (mpga)rn 声道:立体声rn 采样率:44100HZrn 位率:128 kb/srn流1:rn 类型:<em>视频</em>rn 原始 ID: 69rn 编码: H264-MPEG-4 AVC (part 10)(<em>h264</em>)rn 分辨率:720*576rn 帧率:50rn rn rn这2个<em>视频</em>区别在哪呢,我用vlc在电脑上这2个都能放的,自己编译后的,只能放第一个。我在编译<em>ffmpeg</em>的时候需要另外加什么参数吗rn rn能帮帮小弟吗,谢谢
FFMPEG实现RTSP中H264数据流解码 并且实时播放
主要过程和<em>ffmpeg</em>实现<em>视频</em><em>播放</em>的过程差不多 可以参考:https://blog.csdn.net/yunge812/article/details/79342089 主要改动原始文件的读取 <em>播放</em>器是<em>播放</em>本地文件 而我们这里需要读取的是RTSP中H264数据流 char filepath[1024] = &amp;amp;amp;quot;<em>rtsp</em>://184.72.239.149/vod/mp4://Bi...
iOS使用FFmpeg 播放rtsp实时监控
因为最近项目 设计道路监控 ,要求用客户端调用观看实时监控 ,就想到了用<em>ffmpeg</em>  ,之前没接触过这个,用了大约3天时间,磕磕绊绊终于搞出来了, 首先编译需要的库文件         本次编译环境    OS10.11       xcode7.2.1 FFmpeg 是一套可以用来记录、转换数字音频、<em>视频</em>,并能将其转化为流的开源计算机程序。采用 LGPL 或 GPL 许可证。它提供了录制
在qt里面使用ffmpeg播放h264
<em>使用</em>其他人的demo,在我的系统里移植成功了,改了诸多编译<em>问题</em>! 待补充!
swing 播放 rtsp 视频
电脑上需要安装 vlc <em>播放</em>器,然后用再运行此程序 就可以直接打开了 利用 vlcj 插件。 mediaPlayerComponent = new EmbeddedMediaPlayerComponent(); // mediaPlayerComponent.getMediaPlayer().addMediaOptions(":network-caching=500"); mediaPlayerComponent.setSize(1280, 960); frame.getContentPane().setLayout(null); frame.add(mediaPlayerComponent); frame.setLocation(100, 100); frame.setSize(1440, 1024); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); MediaPlayer player = mediaPlayerComponent.getMediaPlayer(); String[] options = {"video-filter=motionblur", "network-caching=200", "no-plugins-cache"}; player.playMedia("<em>rtsp</em>://admin:1qaz2wsx@192.168.0.102:554/<em>h264</em>/ch1/main/av_stream",options);
Vlc播放rtsp视频
Vlc<em>播放</em><em>rtsp</em><em>视频</em>
请教大家,关于ffmpeg播放rtsp
<em>ffmpeg</em>支持<em>播放</em><em>rtsp</em>流吗?为什么我用ffplay然后接一个<em>rtsp</em>地址总是不能<em>播放</em>?同一个地址VLC是可以<em>播放</em>的.似乎ffmepg里面有<em>rtsp</em>相关的代码啊,为什么不能<em>播放</em>呢,有没有人知道,谢谢!!
WebRTC播放RTSP视频
实现了用RTSP协议接入已有流媒体平台或摄像机的<em>视频</em>,通过转码后用WebRTC进行<em>播放</em>,只要支持WebRTC的浏览器或移动端都可以<em>使用</em>。用WebRTC<em>播放</em>监控<em>视频</em>可以处理高版本浏览器不支持插件的情况,且比rtmp、HLS的实时性更高。
ffmpeg解码sdl播放h264
根据雷霄骅的代码修改的,<em>使用</em><em>ffmpeg</em>纯净解码,sdl显示<em>h264</em>,稍作修改就能实时<em>播放</em><em>h264</em>网络<em>视频</em>流,有较详细的注释,希望对你有所帮助!
使用ffmpegrtsp视频截图
<em>ffmpeg</em> -i <em>rtsp</em>://192.168.1.64:554/Streaming/Channels/1 -y -f mjpeg -t 0.001 -s 1280x720 test.jpg <em>使用</em><em>ffmpeg</em>对摄像头的<em>视频</em>流进行截图。 <em>rtsp</em>://192.168.1.64:554/Streaming/Channels/1 海康的设备一般是这个<em>rtsp</em>地址。 -f mjpeg 或者-f im...
C#使用FFMPEG解码H264视频源码
C#版本的<em>视频</em>解码源码,<em>使用</em>FFMPEG解码H264<em>视频</em>文件,解码后的数据保存为YUV格式,可以<em>使用</em>yuvplayer<em>播放</em>. Dll目录是运行时<em>使用</em>的动态库. Video目录是测试用的H264<em>视频</em>文件. 源码展示了如何用CLR封装C代码,然后在C#项目中<em>使用</em>. 涉及CLR的数据格式转换,事件和线程。 项目工程<em>使用</em>VS 2012创建。
FFMpeg解H264压缩rtsp协议流媒体
http://www.cocoachina.com/bbs/read.php?tid-283773.html
ffmpeg 播放rtsp流认证问题
最近研究<em>使用</em><em>ffmpeg</em><em>播放</em><em>rtsp</em> url<em>问题</em>,<em>播放</em>海康<em>rtsp</em>流例如接入onvif的url:<em>rtsp</em>://10.10.129.188:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1 如果相机没有进行<em>rtsp</em>相关的<em>rtsp</em>认证,可以直接<em>使用</em>ffplay<em>播放</em>,可以如果相机开启了<em>rtsp</em>认证该怎么办?查了查ffm
关于ffmpeg解码h264问题
打开某<em>视频</em>流(<em>视频</em>流是live555获得的),是<em>h264</em>格式的,他有34字节的SPS和4字节的PPSrn然后我按照 rn起始码定义为0x00 00 00 01rn然后我程序的流程是rn:rn(1)起始码+SPS+起始码+PPS+起始码+<em>视频</em>帧1 ,发送至avcodec_decode_video2rn(2)起始码+<em>视频</em>帧2,发送至avcodec_decode_video2rn。。rnrn但是遇到了<em>问题</em>,rn(1)如果用rnAVPacket packetrnav_new_packet(&packet,some_size)rnmempcy(packet.data,src,some_size)《=======到这一步产生段错误rnrn(2)即便我已经在第一帧给了解码器SPS和PPSrn解码器还是无法解码,典型的错误是rnnon existing pps 159 referencerndecode_slice_header errorrnalice type too large (2) at 0 18rnrn<em>视频</em>源是<em>rtsp</em>://192.168.0.100/xxx.xxx 这个<em>视频</em>源应该没<em>问题</em> 用vlcplay可以打开
使用ffmpeg h264解码
<em>使用</em><em>ffmpeg</em> <em>h264</em>解码的一个小例子 大家可以看一下 有需要的下载一下
Android 使用videoview播放Rtsp视频 demo
Android <em>使用</em>videoview<em>播放</em>Rtsp<em>视频</em> demo http://blog.csdn.net/huanzhongying/article/details/53032909
rtsp 播放 h264视频流,这么获取帧率?
我现在在服务器启动了一个25帧/s <em>h264</em><em>视频</em>流的服务,在客户端用vlc<em>播放</em>总是<em>播放</em>几帧就停了,我怀疑是vlc按30帧播,没有数据就停了。我怎么能在服务端告诉vlc帧率是多少?还有就是我把流存成一个文件用暴风可以<em>播放</em>,但是vlc不可以?
ffmpeg解码编码,播放画面花屏
从264的文件一帧一帧读取数据,先用<em>ffmpeg</em>解码,利用解码出来的缓存帧数据直接编码,编码后的数据写入文件,用smplayer<em>播放</em>后,图像开始好的慢慢变花- -求原因,附下代码:rn//解码器初始化rnbool H264_Init()rnrn if ((BOOL)g_pCodecCtx)rn rn return TRUE;rn rn avcodec_init();rn av_register_all();rnrn AVCodec *pCodec = NULL;rn pCodec = avcodec_find_decoder(CODEC_ID_H264);//得到H264的解码器:rn if (NULL != pCodec)rn rn g_pCodecCtx = avcodec_alloc_context();rn if (avcodec_open(g_pCodecCtx, pCodec) >= 0)rn rn g_pavfFrame = avcodec_alloc_frame();rn g_pavfFrame2 = avcodec_alloc_frame();rn rnrnrn rn //return (BOOL)g_pavfFrame;rnrn//编码器初始化rnbool H264_Init2()rn int br=100000;rn outbuf = (uint8_t*)malloc(200000);rn AVCodec *pCodec = NULL;rn pCodec = avcodec_find_encoder( CODEC_ID_H264);rn if (!pCodec) rn fprintf(stderr, "codec not found\n");rn exit(1);rn rnrn c= avcodec_alloc_context();rn //c->bit_rate = br;rn /* resolution must be a multiple of two */rn c->width = 720;rn c->height = 480;rn c->time_base.num = 1; c->time_base.den = 15;rn c->gop_size = 10; /* emit one intra frame every ten frames */rn c->max_b_frames=1;rn c->pix_fmt = PIX_FMT_YUV420P;rnrnrn c->bit_rate = br*10;rn c->rc_min_rate =br*0.8;rn c->rc_max_rate = br*5; rn c->bit_rate_tolerance = br;rn c->rc_buffer_size=br*15;rn c->rc_initial_buffer_occupancy = c->rc_buffer_size*3/4;rn c->rc_buffer_aggressivity= (float)1.0;rn c->rc_initial_cplx= 0.5; rn c->flags |=CODEC_FLAG_QSCALE;rn c->qcompress = 0.6; // qcomp=0.6rn c->qmin = 10; // qmin=10rn c->qmax = 30; // qmax=51 默认 51 会导致画面质量下降厉害rn // 设置恒定码率rn //c->rc_buffer_size = 600000;rn //c->rc_max_rate = c->bit_rate;rn //c->rc_min_rate = c->bit_rate;rn //c->bit_rate_tolerance = c->bit_rate;rn c->max_qdiff = 4; // qdiff=4 //<em>ffmpeg</em> 默认是3打开时报错rnrnrn /* open it */rn if (avcodec_open(c, pCodec) < 0) rn fprintf(stderr, "could not open codec\n");rn exit(1);rn rnrn f = fopen("./22.264", "wb");rn if (!f) rn fprintf(stderr, "could not open %s\n", "./aaaaaa.264");rn exit(1);rn rnrnrnBOOL H264_Decode(unsigned char * pSrcData, const DWORD dwDataLen) //unsigned char* pDeData)//, int * pnWidth, int * pnHeight)rn//pSrcData – 待解码数据,dwDataLen – 待解码数据字节数,pDeData – 用来返回解码后的YUV数据.pnWidth, pnHeight – 用来返回<em>视频</em>的长度和宽度rnrnrnrn BOOL nGot = FALSE;rnrn int lent=avcodec_decode_video(g_pCodecCtx, g_pavfFrame2, (int *)&nGot, (unsigned __int8 *)pSrcData, dwDataLen);rnrnrn int lenttt=avcodec_decode_video(g_pCodecCtx, g_pavfFrame, (int *)&nGot, (unsigned __int8 *)pSrcData, dwDataLen);rn if (nGot)rn rn assert(g_pCodecCtx->pix_fmt==PIX_FMT_YUV420P);rn rnrn return nGot;rnrnrnvoid H264_Release()rnrn if((BOOL) g_pavfFrame)rn rn av_free(g_pavfFrame);rn g_pavfFrame = NULL;rn rnrn if ((BOOL)g_pCodecCtx)rn rn avcodec_close(g_pCodecCtx);rn av_free(g_pCodecCtx);rn g_pCodecCtx = NULL;rn rnrnrnvoid video_encode()rnrn int outbuf_size;rn printf("Video encoding\n");rn pSwsCtx = sws_getContext(g_pCodecCtx->width,g_pCodecCtx->height, g_pCodecCtx->pix_fmt, 720, 480, PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL);rn /* alloc output buffer */rn outbuf_size = 400000;rn /* encode the image */rn if(g_pavfFrame->data[0]!=NULL)rn sws_scale(pSwsCtx, g_pavfFrame->data, g_pavfFrame->linesize,rn 0,g_pCodecCtx->height,rn g_pavfFrame2 ->data,g_pavfFrame2 ->linesize);rnrn out_size = avcodec_encode_video(c, outbuf, outbuf_size, g_pavfFrame2);rn if(out_size>0)rn printf("encoding frame %3d (size=%5d)\n", aaa, out_size);rn fwrite(outbuf, 1, out_size, f);rn rn rn printf("\n");rn
Vlc播放rtsp视频demo-src.rar
Vlc<em>播放</em><em>rtsp</em><em>视频</em>demo-src 该例子<em>使用</em>VS2010编写
H5Stream播放RTSP流视频
H5Stream入门级应用,<em>播放</em>RTSP流<em>视频</em>   看到网上<em>关于</em>的H5Stream的资料比较少,故本文介绍了H5Stream的入门级<em>使用</em>教程,<em>播放</em>摄像头的RTSP<em>视频</em>流和和本地测试<em>视频</em>。包括H5Stream的安装、配置。步骤如下: https://github.com/linkingvision/h5stream api文档: https://www.linkingvision.com/d...
用libvlc播放rtsp视频
<em>播放</em>一段时间后不到2分钟就会<em>出现</em>下面的<em>问题</em>,然后<em>视频</em>就中断了,libvlc_media_get_state返回的值是libvlc_end,但直接用vlc<em>播放</em>器是没有<em>问题</em>的,这个是什么原因呢,各位大神,帮帮忙rn[0x9a15068] main input error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 1000 ms)rn[0x9a15068] main input error: ES_OUT_RESET_PCR calledrn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x9a15068] main input debug: Buffering 0%rn[0x99aee10] live555 demux warning: no data received in 10s, eof ?rn[0x9a15068] main input debug: EOF reachedrn[0x9a15068] main input debug: Stream buffering done (0 ms in 8704 ms)rn[0x9a15068] main input debug: Decoder buffering done in 0 msrn[0x9c9d190] main decoder debug: removing module "avcodec"rn[0x9c9d190] avcodec decoder debug: <em>ffmpeg</em> codec (H264 - MPEG-4 AVC (part 10)) stoppedrn[0x9c9d190] main decoder debug: killing decoder fourcc `<em>h264</em>', 0 PES in FIFOrn[0x9ca9eb8] main generic debug: saving a free voutrn[0x9ca9eb8] main generic debug: reusing provided voutrn[0x9a03890] main packetizer debug: removing module "packetizer_<em>h264</em>"rn[0x99aee10] main demux debug: removing module "live555"rnOpening connection to 192.168.1.122, port 554...rn[0x9a15068] main input debug: Program doesn't contain anymore ES
使用FFmpeg解码 丢包 花屏
<em>使用</em>FFmpeg解码,<em>使用</em>SDL显示画面有时候会连续丢包,导致<em>花屏</em>的现象。 解决办法: 1.将<em>rtsp</em>传输方式由默认的udp传输,设置为tcp传输 2.每次解码一帧后,SDL_Delay时长设置为跟帧率匹配,<em>使用</em>1000/帧率作为时长 发现就没有频繁丢包的情况了 代码如下: DWORD WINAPI ONVIF::ShowVideo(void *param) { if(par
网页端播放rtsp视频
实现了用RTSP协议接入已有流媒体平台或摄像机的<em>视频</em>,通过转码后用WebRTC进行<em>播放</em>,只要支持WebRTC的浏览器或移动端都可以<em>使用</em>。用WebRTC<em>播放</em>监控<em>视频</em>可以处理高版本浏览器不支持插件的情况,且比rtmp、HLS的实时性更高。
RTSP协议播放监控视频
怎么才能<em>播放</em>RTSP协议的<em>视频</em>流?犹豫本人太菜,实在解决不了了,求有经验的大神帮帮忙!感激不尽!!!
DirectShow.Net播放H264格式视频
H264解出来的是YUV420格式的图像,现在数据解出来了,不知道怎么下手了,在网上找了一些资料,也没有什么进展。rnrn想用DirectShow.Net来做,DirectShow本身是不支持这种格式的,请高人指点。
网页播放嵌入播放rtsp视频
1、vlc player 如果客户<em>使用</em>ie或者firefox的话,可以<em>使用</em>vlc player,vlc player 同样需要安装插件,需要电脑上安装vlc player的本地客户端(安装时勾选插件选项),然后通过 标签来引入<em>播放</em>https://www.videolan.org/,经测试发现,在IE8中可以正常运行,显示<em>视频</em>,在IE11和chrome浏览器中均不支持。  &amp;lt;div style...
Android播放rtsp协议视频问题
小弟尝试<em>使用</em>MediaPlayer<em>播放</em>Rtsp协议的<em>视频</em>:rn1.用VideoView<em>播放</em>rn2.用MediaPlayer<em>播放</em>rn3.new 一个intent送到自带<em>播放</em>器<em>播放</em>rnrn其实上述三种方法都是<em>使用</em>MediaPlayer<em>播放</em>.都失败.rn<em>问题</em>如下:rnrnPLAY步骤之前一直正常,PLAY步骤的时候,报个PVMF Failure,然后就 TEARDOWN了.rnrn我想请问下,是否MediaPlay 不支持 RTSP协议?rnrn
ffmpeg编码h264问题
我用佰锐的<em>ffmpeg</em>SDK试了下 output_example.c编码<em>h264</em>,结果帧率这些都不对了。rn发现从guess_format()得到的AVOutputFormat* 里面write_header函数指针是空的,那么开始写文件时的头信息av_write_header函数里面也不会正确,不知道是不是这个引起的?rnrn怎么解决呢?求助~
ffmpeg+SDL 实时 解码 播放 H264裸流,解码播放正常一段时间后出现断流、花屏问题
[b]网络情况[/b]:局域网内推流rn[b]转存为本地文件后<em>播放</em>情况[/b]:ffplay<em>播放</em>有<em>花屏</em><em>问题</em>,爱奇艺万能<em>播放</em>器无<em>花屏</em>rn[b]本<em>播放</em>器运行日志与<em>播放</em>情况[/b]:如图rn[img=https://img-bbs.csdn.net/upload/201711/04/1509775025_451718.jpg][/img]rn[img=https://img-bbs.csdn.net/upload/201711/04/1509775071_812287.jpg][/img]rn[b]解码源码:[/b]rn[code=c]#include "C<em>ffmpeg</em>.h"rn#include rn#include rn#include rn#include rn#define __STDC_CONSTANT_MACROSrnrn#pragma comment(lib, "avutil.lib")rn#pragma comment(lib, "avcodec.lib")rn#pragma comment(lib, "avformat.lib")rn#pragma comment(lib, "swscale.lib")rn//内存对齐可能对CPU效率有影响; 具体根据CPU的存取粒度;rnrnint C<em>ffmpeg</em>::interrupt_cb(void *mpeg)rnrn C<em>ffmpeg</em> *p_mpeg = (C<em>ffmpeg</em> *)mpeg;rn if ((av_gettime()/1000 - p_mpeg->dwLastFrameRealtime) > 60*1000)rn rn qDebug() << QStringLiteral("断开连接!");rn return 1;rn rn return 0;rnrnrnC<em>ffmpeg</em>::C<em>ffmpeg</em>()rnrn <em>ffmpeg</em>Init();rn QDateTime dateTime = QDateTime::currentDateTime();rn dwLastFrameRealtime = dateTime.toMSecsSinceEpoch();rnrnrnC<em>ffmpeg</em>::~C<em>ffmpeg</em>()rnrn if (m_pDstFrame)rn av_frame_free(&m_pDstFrame);rn if (m_pImg_convert_ctx)rn sws_freeContext(m_pImg_convert_ctx);rn if (m_pCodecCtx)rn avcodec_close(m_pCodecCtx);rn if (m_pFormatCtx)rn avformat_close_input(&m_pFormatCtx);rn if (m_pCodec)rn rn delete m_pCodec;rn rnrnrnint C<em>ffmpeg</em>::<em>ffmpeg</em>Init()rnrn m_pFormatCtx = NULL;rn m_pCodecCtx = NULL;rn m_pCodec = NULL;rn m_pDstFrame = NULL;rn m_pImg_convert_ctx = NULL;rn m_iVideoindex = -1;rn isFormatCtxNull = 0;rn m_QSfilepath.clear();rn memset(m_errBuf, 0, sizeof(m_errBuf));rn rn av_register_all();rn avcodec_register_all();rn avformat_network_init();rn m_pFormatCtx = avformat_alloc_context();rn m_pDstFrame = av_frame_alloc(); //申请一个AVFrame 并做一些初始化工作rn return DJJ_SUCCESS;rnrnrnint C<em>ffmpeg</em>::OpenVideoFile(QString filepath, int *linksocket)rnrn int ret, i;rn QByteArray qbFilepath = filepath.toLatin1();rn char *szFilepath = qbFilepath.data();rnrn m_pFormatCtx->interrupt_callback.callback = interrupt_cb;rn m_pFormatCtx->interrupt_callback.opaque = this;rn AVDictionary* options = NULL;rn av_dict_set(&options, "<em>rtsp</em>_transport", "tcp", 0);rn av_dict_set(&options, "bufsize", "655360", 0);rn *linksocket = avformat_open_input(&m_pFormatCtx, szFilepath, NULL, &options);rn if (0 != *linksocket)rn rn av_strerror(*linksocket, m_errBuf, sizeof(m_errBuf));rn printf("Could not open input stream, filename: %s. Error:%d(%s)\n", szFilepath, *linksocket, m_errBuf);rn avformat_close_input(&m_pFormatCtx);rn return DJJ_FAILURE;rn rn rn m_pFormatCtx->probesize = 32;rn ret = avformat_find_stream_info(m_pFormatCtx, NULL);rn if (ret < 0)rn rn av_strerror(ret, m_errBuf, sizeof(m_errBuf));rn printf("Could not find stream information Error: %d(%s)\n", ret, m_errBuf);rn return DJJ_FAILURE;rn rnrn printf("------------------------File Information-------------------------\n");rn av_dump_format(m_pFormatCtx, 0, szFilepath, 0); //获取文件的信息到 AVFormatContextrn printf("------------------------------END--------------------------------\n");rnrn return DJJ_SUCCESS;rnrnrnint C<em>ffmpeg</em>::SwsVideo(int *w,int *h,int dstWidth/* =0 */, int dstHeight/* =0 */, AVPixelFormat pix_fmt /* = AV_PIX_FMT_YUV420P */)rnrn int i, videoindex, ret;rn uint8_t *out_buffer;rnrn m_iVideoindex = -1;rn if (!m_pFormatCtx)rn rn return DJJ_FAILURE;rn rn for (i = 0; i < m_pFormatCtx->nb_streams; i++)rn rn if (m_pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)rn rn m_iVideoindex = i;rn break;rn rn rn if (-1 == m_iVideoindex)rn rn printf("Can not find a video stream.\n");rn return DJJ_FAILURE;rn rnrn m_pCodecCtx = m_pFormatCtx->streams[m_iVideoindex]->codec;rn m_pCodec = avcodec_find_decoder(m_pCodecCtx->codec_id); //通过code ID查找一个已经注册的音<em>视频</em>编码器;rn if (m_pCodec == NULL)rn rn printf("Codec not found!\n");rnrn return DJJ_FAILURE;rn rnrn ret = avcodec_open2(m_pCodecCtx, m_pCodec, NULL); //<em>使用</em>给定的AvCodec初始化AVCodecContextrn if (ret < 0) rn rn av_strerror(ret, m_errBuf, sizeof(m_errBuf));rn printf("Could not open codec. Error:%d(%s)\n", ret, m_errBuf);rn avcodec_close(m_pCodecCtx);rn m_pCodecCtx = NULL;rn return DJJ_FAILURE;rn rnrn out_buffer = (uint8_t *)av_malloc(avpicture_get_size(pix_fmt, m_pCodecCtx->width, m_pCodecCtx->height));//avpicture_get_size 解码之后一帧图像的大小;//av_malloc封装了malloc并做了一些安全性操作;rnrn avpicture_fill((AVPicture *)m_pDstFrame, out_buffer, pix_fmt, m_pCodecCtx->width, m_pCodecCtx->height);//avpicture_fill 将pFrameYUV 按照 AV_PIX_FMT_YUV420P的格式“关联”到 out_buffer, 数据转换完之后 也自动保存到了out_buffer;rnrn m_pImg_convert_ctx = sws_getContext(m_pCodecCtx->width, rn m_pCodecCtx->height, rn m_pCodecCtx->pix_fmt,rn (dstWidth == 0 ? m_pCodecCtx->width:dstWidth), rn (dstHeight == 0? m_pCodecCtx->height:dstHeight), rn pix_fmt, rn SWS_BICUBIC, rn NULL, rn NULL, rn NULL);//获得并初始化一个SwsContext结构体,这是一个缩放及格式转换的函数 这里的缩放比例为1:1rn rn *w = m_pCodecCtx->width;rn *h = m_pCodecCtx->height;rn rn return DJJ_SUCCESS;rnrnrnint C<em>ffmpeg</em>::ReadPkt(AVPacket** pOutPkt,int count)rnrn int ret;rnrn if (!m_pFormatCtx)rn rn return DJJ_FAILURE;rn rn ret = av_read_frame(m_pFormatCtx, *pOutPkt);//从源文件容器中读取一个AVPacket数据包; (音频可能包含多帧),这个时候为AVpacket的数据分配内存rn if (ret >= 0) rn rn if ((*pOutPkt)->stream_index == m_iVideoindex) //如果是<em>视频</em>帧的话,进行解码rn rn QDateTime dateTime = QDateTime::currentDateTime();rn dwLastFrameRealtime = dateTime.toMSecsSinceEpoch();rn return DJJ_SUCCESS;rn rn rn elsern rn if (count < 20)//读取数据出错计数器rn rn av_strerror(ret, m_errBuf, sizeof(m_errBuf));rn printf("Read Frame Error:%d(%s)\n", ret, m_errBuf);rn return DJJ_FAILURE;rn rn elsern rn isFormatCtxNull = 1;rn Sleep(3000);rn emit breakLine();rn return DJJ_FAILURE;rn rn rn return DJJ_FAILURE;rnrnrnint C<em>ffmpeg</em>::ProcessPkt(int *count, AVPacket* pPkt, uint8_t** out, int* linesize)rnrn int ret, got_picture = 0;rn AVFrame* testFrame;rn testFrame = av_frame_alloc();rn rn// printf("AVPacket->pts:%d\n", pPkt->pts);rn ret = avcodec_decode_video2(m_pCodecCtx, testFrame, &got_picture, pPkt);rn if (ret < 0)rn rn (*count)++;//解码出错计数器(日志no frame<em>问题</em>,不用理会)rn av_strerror(ret, m_errBuf, sizeof(m_errBuf));rn printf("Decode Error:%d(%s)\n", ret, m_errBuf);rn return DJJ_FAILURE;rn rn (*count) = 0;//重置解码出错计数器rn if (got_picture)rn rn sws_scale(m_pImg_convert_ctx,rn (const uint8_t* const*)testFrame->data,rn testFrame->linesize,rn 0,rn m_pCodecCtx->height,rn m_pDstFrame->data,rn m_pDstFrame->linesize);//图片像素转换、拉伸函数; rn (*out) = (uint8_t*)malloc(avpicture_get_size(AV_PIX_FMT_YUV420P, m_pCodecCtx->width, m_pCodecCtx->height));rn memcpy((*out), m_pDstFrame->data[0], avpicture_get_size(AV_PIX_FMT_YUV420P, m_pCodecCtx->width, m_pCodecCtx->height));rn *linesize = m_pDstFrame->linesize[0];rn rnrn av_frame_unref(testFrame);rn av_frame_free(&testFrame);rnrn if (got_picture)rn rn return DJJ_SUCCESS;rn rn elsern rn return DJJ_FAILURE;rn rn[/code]rn
iOS FFmpeg播放RTSP流的Demo
工程是FFmpeg<em>播放</em>RTSP流的一个Demo,FFmpeg是自己编译的,时候监控项目目前只实现了图像显示没有实现声音<em>播放</em>
h264数据ps封装分包后,vlc播放花屏问题
H264数据在ps封装后,如果不分包,vlc可以正常<em>播放</em>,如果分包vlc<em>播放</em><em>花屏</em>!<em>使用</em>JRTP发送rn不分包代码:rnLIBRTP_SendPacket(p->rtp_handle, buf+offset, len, 96, true, 3600);rnrnrn分包代码逻辑:rnint len = size;rnint offset = 0;rnint nTimestampInc = 3600;rnbool mark = false;rnint maxlen = 1300;rnwhile(len > maxlen)rnrn if(len == maxlen)rn rn mark = true;rn rn LIBRTP_SendPacket(p->rtp_handle, buf+offset, maxlen, 96, mark, nTimestampInc);rn offset += maxlen;rn len -= maxlen;rn nTimestampInc =0;rn rnrnmark = true;rnrnif(len>0)rnrn LIBRTP_SendPacket(p->rtp_handle, buf+offset, len, 96, mark, nTimestampInc);rnrnrnLIBRTP_SendPacket对应的jrtp里面的rnint RTPSession::SendPacket(const void *data,size_t len, uint8_t pt,bool mark,uint32_t timestampinc)rn哪位大神帮忙下!谢谢
[FFmpeg] 播放RTSP的一些常用配置选项
AVDictionary* options = NULL; av_dict_set(&amp;amp;amp;amp;amp;amp;options, &amp;amp;amp;amp;quot;buffer_size&amp;amp;amp;amp;quot;, &amp;amp;amp;amp;quot;1024000&amp;amp;amp;amp;quot;, 0); av_dict_set(&amp;amp;amp;amp;amp;amp;options, &amp;amp;amp;amp;quo
请教:ffmpeg是否支持rtsp流的播放
大家好,虽然对<em>ffmpeg</em>有一些了解,但是一直不清楚它是否支持<em>rtsp</em>,官方的<em>ffmpeg</em> sdk是否支持<em>rtsp</em>流的<em>播放</em>?谢谢。
FFmpeg H264
从FFmpeg中提取出来的H264解码代码,<em>使用</em>CMake和VS2013就可以进行调试,有利于学习H264解码标准。
WPF使用Emgu.CV播放RTSP视频可编辑视频显示大小
Emgu.CV这个就不具体说了,百度一下其它CSDN有说明 开发<em>使用</em>VS2013 新建WPF项目也不说了 新建项目以后如图操作<em>使用</em>nuget安装Emgu.CV 网站地址:https://www.nuget.org/packages/Emgu.CV/ 复制 打开程序包管理控制台,输入复制 Install-Package Emgu.CV -Version 3.4.1.2976 内...
Kmplayer播放在线的一些视频出现花屏现象求解!!!!!!!!!!!!
同上,请问各位大侠怎么解决?尤其是AVI格式的桢速率为1桢/秒时肯定花.该怎么办?用爆风就没<em>问题</em>.
【100分】Directshow播放mp4视频出现花屏
我<em>使用</em>别人现成的MP4解码filter,直接RenderFile, 自动构建的filter链如图:rn[img=https://img-bbs.csdn.net/upload/201403/29/1396107675_581618.png][/img]rn这个链应该没<em>问题</em>,因为我用GraphEdit <em>播放</em>时建立的链和这个一样,而且<em>播放</em>正常。rnrn而我的程序<em>播放</em>却<em>花屏</em>:rn[img=https://img-bbs.csdn.net/upload/201403/29/1396107779_288731.png][/img]rnrn
ffmpeg 视频倍速播放 和 慢速播放
<em>视频</em>的倍速<em>播放</em>与慢速<em>播放</em> 通过<em>使用</em> av filter 中的 setpts 来实现: <em>ffmpeg</em> -i input.mkv -filter:v &quot;setpts=0.5*PTS&quot; output.mkv <em>视频</em>滤波器通过改变每一个 pts时间戳 来实现; 如果担心会<em>出现</em>丢帧的情况,可以<em>使用</em> -r 指定输入帧数,如果源<em>视频</em>是30fps,我们想4倍<em>播放</em>: <em>ffmpeg</em> -i input.mk...
FFMPEG,windows下使用,支持h264
FFmpeg version UNKNOWN, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --prefix=/f/usr/<em>ffmpeg</em>_build413 --enable-memalign-hack --enable -gpl --enable-nonfree --enable-shared --enable-libmp3lame --enable-libamr-nb --e nable-libamr-wb --enable-libfaac --enable-libfaad --enable-libx264 --enable-libx vid --enable-avisynth libavutil 50. 3. 0 / 50. 3. 0 libavcodec 52.25. 0 / 52.25. 0 libavformat 52.32. 0 / 52.32. 0 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0. 7. 1 / 0. 7. 1 built on Apr 13 2009 22:45:09, gcc: 4.3.2 At least one output file must be specified
C# FFmpeg保存rtsp视频流到本地文件
C# <em>使用</em>FFmpeg库保存<em>rtsp</em><em>视频</em>流为本地文件,获取摄像头<em>rtsp</em><em>视频</em>流地址可以参考我的另一个资源
视频问题 关于 ffmpeg使用--焦急等待
哪位高手了解 <em>ffmpeg</em> rn我在做一个PHP网站准备把用户上传的 <em>视频</em>文件通过 <em>ffmpeg</em> 自动转换成 flvrn可是在网上 找了几天了 也没找到 合适的 资料。哪位大侠做过这方面的 东西 能不能 给段 例子的 代码(就是实现<em>使用</em><em>ffmpeg</em> 自动转换的基本php 语句) 给个网上的连接 也行。 我试过几个 都不好用 100 分不够的 话 我可以 再开贴 给分 rnrn谢谢了 rnrn
H264视频ffmpeg解码以及误码率统计
摄像头采集的<em>视频</em>数据通过发送机无线发送出去,然后接收机接收后把数据以512*10 Byte/10ms的速率(一个UDP包,一个UDP包包含10个数据超帧)通过网口发送给上位机软件,上位机软件解析帧数据抽取出数字数据、模拟数据和<em>视频</em>数据,然后本地保存数模数据以及<em>视频</em>数据,并通过<em>ffmpeg</em>解码H264<em>视频</em>数据或<em>使用</em>ffPlay<em>播放</em>插件实现实时<em>播放</em><em>视频</em>,并实现模拟量电压值实时波形显示,实现丢帧统计算法,实时误码率,总误码率并波形显示各误码率情况
ffmpeg提取mp4的h264码流写文件花屏
1、用<em>ffmpeg</em>提取mp4的<em>h264</em>码流写文件的方法网上有很多,不知道的请参考雷神博客:http://blog.csdn.net/leixiaohua1020/article/details/11800877 2、但是这么写出来的文件是有<em>问题</em>的,首先的确能<em>播放</em>,但是会有很大几率<em>出现</em><em>花屏</em> a、首先说说解决方案 其实很简单,也是利用av_bitstream_filter_filter方法,如下
利用ffmpeg获取rtsp视频流并使用opencv播放
/*opencv库*/ #include &amp;lt;opencv2\opencv.hpp&amp;gt; #include &amp;lt;iostream&amp;gt; extern &quot;C&quot; /*这里必须要<em>使用</em>C方式导入*/ { #include &quot;libavcodec/avcodec.h&quot; #include &quot;libavdevice/avdevice.h&quot; #include &quot;libavformat/avform...
一个vc中使用ffmpeg h264问题
m_CodecCtx->codec_id =CODEC_ID_H264;rn m_CodecCtx->codec_type = AVMEDIA_TYPE_VIDEO;rn m_CodecCtx->width = 1024;rn m_CodecCtx->height = 768;rnrn m_OriHeight = iheight;rn m_OriWidth = iwidth;rn //pCodecCtx->time_base.den = 25; rn //pCodecCtx->time_base.den = 50; rn m_CodecCtx->time_base.den =FrameRate; rn rn m_CodecCtx->time_base.num = 1; rn m_CodecCtx->dct_algo = 0; rn m_CodecCtx->me_pre_cmp = 2; rn rn //pCodecCtx->crf = 1;rn m_CodecCtx->bit_rate = BitRate; rn m_CodecCtx->cqp = 21; rn m_CodecCtx->me_method = 7; //For CODEC_ID_H264rn m_CodecCtx->qmin = 3; //x264 dislike(2) rn m_CodecCtx->qmax = 30; //x264 dislike(31) rn rn rn //--pCodecCtx->gop_size = 30; //x264 dislike(12) rn m_CodecCtx->gop_size = GopSize/*250*/; //x264 dislike(12) --------keyframe interval 关键帧间隔rn m_CodecCtx->max_qdiff = 3; rn m_CodecCtx->qcompress = (float)0.6; //x264 dislike(0.5) rn m_CodecCtx->qblur = (float)0.5; rn m_CodecCtx->nsse_weight = 8; rn m_CodecCtx->i_quant_factor = (float)0.8; rn m_CodecCtx->b_quant_factor = (float)1.30; //x264 dislike(value - 1.25) < 0.01)//注释掉这句能避免出错 rn m_CodecCtx->b_quant_offset = (float)1.30; //x264 dislike(value - 1.25) < 0.01) rn m_CodecCtx->pix_fmt = PIX_FMT_YUV420P;//当前YUV420 rnrn我这样设置,为何我修改m_CodecCtx->bit_rate的码率没有得到改变呢,希望高手能给我解惑。。。求解答!!!!!
h264码流转rtsp
H264洛码流转RTSP代码实例及开发库 1、支持本地H264文件、本地摄像头及网络媒体数据 2、实例demo为从<em>rtsp</em>媒体流获取数据然后,解包<em>h264</em>数据,直接发送到网络库,进行转发 3、基于live555及<em>ffmpeg</em>2.5.3库,QT5.3.1 4、支持二次开发,请参照test工程
rtsp rtp h264 数据包
https://blog.csdn.net/engineer_james/article/details/81743571 配合分析 用来学习,<em>rtsp</em> rtp的dump文件,已经在wireshark 中分类,用wireshark打开
RTSP H264播放
一个方便好用的RTSP<em>播放</em>器,输入<em>rtsp</em> url,即可实时预览和录像。由网络SDK,解码、<em>播放</em>SDK组成,RTSP网络SDK基于live555源码修改,解码SDK基于<em>ffmpeg</em>, <em>播放</em><em>使用</em>D3D开发。可用于方便测试RTSP流媒体服务器。
ffmpeg的H264编码 视频逐渐模糊
万能的互联网,又一次在临危之时解决了我的<em>问题</em>最近在看<em>ffmpeg</em>里的H264编码,然后试着去做了一下。但是目前发现一个<em>问题</em>,就是编码写入的.264文件,用<em>播放</em>器(VLC,暴风都试过)<em>播放</em>后,发现编码后的<em>视频</em>,开始很清晰,后面慢慢模糊,如下面三个图。下面是代码:memcpy(rgb_buff,frame-&amp;gt;imageData,nDataLen);         avpicture_fill(...
android VideoView播放h264格式的rtsp的cif问题
在VideoView中,用rnprivate VideoView vv;rnvv = (VideoView)findViewById(R.id.videoView);rnString strURL = "<em>rtsp</em>://192.168.1.1:554……";rnvv.setVideoURI(Uri.parse(strURL));rnvv.requestFocus();rnvv.start();rn<em>播放</em>720P的码流是没<em>问题</em>的。不会几秒几秒的蹦哒。但是<em>播放</em>cif的会<em>出现</em>2个<em>问题</em>。rn1:缓冲时间会比720P的时间要长。rn2:<em>播放</em>会<em>出现</em>几秒几秒<em>播放</em>的现象,比如现在<em>播放</em>的是13点10分25秒。会静止4秒后继续<em>播放</em>13点10分29秒,再静止几秒,再继续<em>播放</em>。因为采用的是UDP传输,所以感觉像是丢包现象。rnrnrn有谁知道这是怎么回事么,测试用的android版本是4.1.1台电四核平板,和4.1.2三星四核note8.0rnrn不要说是跟android版本有关,我只是<em>播放</em>一路,跟底层一路解码并不冲突。求大神解释[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/30.gif][/img]rnrn
ndk实例总结:使用ffmpeg播放rtsp
ndk实例总结系列 ndk实例总结:jni实例 ndk实例总结:opencv图像处理 ndk实例总结:安卓Camera与usbCamera原始图像处理 ndk实例总结补充:<em>使用</em>V4L2采集usb图像分析 前言 本篇博客总结下在jni中<em>使用</em>opencv进行图像处理的<em>使用</em>实例 在Android中opencv的<em>使用</em>有两种方式,一种是<em>使用</em>opencv的Android版api,另一种是通过jni来<em>使用</em>ope...
ffmpeg的H264编码问题视频逐渐模糊
最近在看<em>ffmpeg</em>里的H264编码,然后试着去做了一下。但是目前发现一个<em>问题</em>,就是编码写入的.264文件,用<em>播放</em>器(VLC,暴风都试过)<em>播放</em>后,发现编码后的<em>视频</em>,开始很清晰,后面慢慢模糊,如下面三个图。rn不知道为什么,可能是参数设置错误,希望大神给解决一下,谢谢!rn下面是代码rn[code=c]memcpy(rgb_buff,frame->imageData,nDataLen);rnrn avpicture_fill((AVPicture*)m_pRGBFrame, (uint8_t*)rgb_buff, PIX_FMT_RGB24, nWidth, nHeight);rn rn //将YUV buffer 填充YUV Framern avpicture_fill((AVPicture*)m_pYUVFrame, (uint8_t*)yuv_buff, PIX_FMT_YUV420P, nWidth, nHeight);rnsws_scale(scxt,m_pRGBFrame->data,m_pRGBFrame->linesize,0,c->height,m_pYUVFrame->data,m_pYUVFrame->linesize);rn rn int got_packet_ptr = 0;rn av_init_packet(&avpkt);rn avpkt.data = outbuf;rn avpkt.size = outbuf_size;rn u_size = avcodec_encode_video2(c, &avpkt, m_pYUVFrame, &got_packet_ptr);rn if (u_size == 0)rn rn fwrite(avpkt.data, 1, avpkt.size, f);rnelsern printf("error\n");rn [/code]rnrn下面是图片rn[img=https://img-bbs.csdn.net/upload/201401/05/1388929856_259106.jpg][/img]rn[img=https://img-bbs.csdn.net/upload/201401/05/1388929868_182132.jpg][/img]rn[img=https://img-bbs.csdn.net/upload/201401/05/1388929880_225573.jpg][/img]rn
Android使用FFmpeg 解码H264并播放(三)
上一节记录了Android<em>使用</em>FFmpeg解码H264的过程。这一节记录在Android上<em>播放</em>的过程。<em>问题</em>描述在开发中<em>使用</em>某摄像头的SDK,只能获取到一帧帧的 H264 <em>视频</em>数据,不知道<em>视频</em>流地址,需要自己解码出图像并<em>播放</em>。<em>问题</em>解决Android <em>播放</em>解码后的<em>视频</em>帧在Android上<em>播放</em><em>视频</em>的总体思路是在Native层从 Surface 获取 到ANativeWindow,通过修改 ANativeW
使用FFMpeg进行H264编码 播放为空
CFile file[5];rn BYTE *szTxt[5];rnrn int nWidth = 0;rn int nHeight= 0;rnrn int nDataLen=0;rnrn int nLen;rnrn CString csFileName;rn for (int fileI = 1; fileI bit_rate = 3000000;// put sample parameters rn c->width =nWidth;// rn c->height = nHeight;// rnrn // frames per second rn AVRational rate;rn rate.num = 1;rn rate.den = 25;rn c->time_base= rate;//(AVRational)1,25;rn c->gop_size = 10; // emit one intra frame every ten frames rn c->max_b_frames=1;rn c->thread_count = 1;rn c->pix_fmt = PIX_FMT_YUV420P;//PIX_FMT_RGB24;rnrn //av_opt_set(c->priv_data, /*"preset"*/"libvpx-1080p.ffpreset", /*"slow"*/NULL, 0);rn //打开编码器rn if(avcodec_open2(c,pCodecH264,NULL)width * c->height;rnrn yuv_buff = (uint8_t *) malloc((size * 3) / 2); // size for YUV 420 rnrn //将rgb图像数据填充rgb帧rn uint8_t * rgb_buff = new uint8_t[nDataLen];rnrn //图象编码rn int outbuf_size=100000;rn uint8_t * outbuf= (uint8_t*)malloc(outbuf_size); rn int u_size = 0;rn FILE *f=NULL; rn char * filename = "c:\\myData.<em>h264</em>";rn f = fopen(filename, "wb");rn if (!f)rn rn TRACE( "could not open %s\n", filename);rn exit(1);rn rnrn //初始化SwsContextrn SwsContext * scxt = sws_getContext(c->width,c->height,PIX_FMT_BGR24,c->width,c->height,PIX_FMT_YUV420P,SWS_POINT,NULL,NULL,NULL);rnrn AVPacket avpkt;rnrn //AVFrame *pTFrame=new AVFramern for (int i=0;idata[0] += m_pRGBFrame->linesize[0] * (nHeight - 1);rn m_pRGBFrame->linesize[0] *= -1; rn m_pRGBFrame->data[1] += m_pRGBFrame->linesize[1] * (nHeight / 2 - 1);rn m_pRGBFrame->linesize[1] *= -1;rn m_pRGBFrame->data[2] += m_pRGBFrame->linesize[2] * (nHeight / 2 - 1);rn m_pRGBFrame->linesize[2] *= -1;rnrnrn //将RGB转化为YUVrn sws_scale(scxt,m_pRGBFrame->data,m_pRGBFrame->linesize,0,c->height,m_pYUVFrame->data,m_pYUVFrame->linesize);rnrn int got_packet_ptr = 0;rn av_init_packet(&avpkt);rn avpkt.data = outbuf;rn avpkt.size = outbuf_size;rn//tanguixing modifyrn// m_pYUVFrame->pts = i;rn u_size = avcodec_encode_video2(c, &avpkt, m_pYUVFrame, &got_packet_ptr);rn m_pYUVFrame->pts++; rnrn if (u_size == 0)rn rn fwrite(avpkt.data, 1, avpkt.size, f);rn rn rnrn fclose(f); rn delete []m_pRGBFrame;rn delete []m_pYUVFrame;rn delete []rgb_buff;rn free(outbuf);rn avcodec_close(c);rn av_free(c);
FFMPEG 合视频同时播放问题
我想用FFMPEG接收无线网络传输过来的4路<em>视频</em>,然后把4路<em>视频</em>合在一起,<em>播放</em>的时候一起<em>播放</em>,类似的效果就是监控一样,一个大屏幕有4个<em>视频</em><em>播放</em>,有人说开多线程,我不确定<em>ffmpeg</em>能不能这么合<em>视频</em>,我用<em>ffmpeg</em>合起来的<em>视频</em>是播完一个再播下一个,我想同时<em>播放</em>,不知道行不行。希望各位多指教。。
Android使用FFmpeg 解码H264并播放(一)
<em>问题</em>描述在开发中<em>使用</em>某摄像头的SDK,只能获取到一帧帧的 H264 <em>视频</em>数据,不知道<em>视频</em>流地址,需要自己解码出图像并<em>播放</em>。<em>问题</em>解决编译FFmpeg此处省略,这里有 编译好的库,上传到Github了。开发环境配置1、 配置 AndroidStudio 的 NDK 路径。 2、 配置 app 的 build.gradle ,添加 CMake 参数android { defaultConfig
关于FFMPEG中ffserver生成rtsp问题
我现在在虚拟机下的linux<em>使用</em>ffserver把一个1.mp3生成<em>rtsp</em>流,在这个虚拟机下<em>使用</em>./<em>ffmpeg</em> -i <em>rtsp</em>://ip:port/1.mp3 2.mp3可以生成2.mp3,这应该说明ffserver成功了对吧,但是我在自己XP系统上<em>使用</em>该方法或者vlc打开该地址或者其他<em>播放</em>器打开该流都失败,有人知道什么原因吗?或者任何建议。
关于ffmpeg解码rtsp实时流的问题
用<em>ffmpeg</em>库解码RTSP实时流,<em>播放</em>会<em>出现</em><em>花屏</em>,丢帧掉包的情况,控制台打印的信息如下:rn[img=https://img-bbs.csdn.net/upload/201506/15/1434353596_514825.jpg][/img]rn[img=https://img-bbs.csdn.net/upload/201506/15/1434353612_257510.jpg][/img]rnrn程序是<em>使用</em>的这篇文章:[url=http://blog.csdn.net/leixiaohua1020/article/details/38868499]最简单的基于FFMPEG+SDL的<em>视频</em><em>播放</em>器 ver2 (采用SDL2.0)[/url]rnrn程序如下:rn[code=c]rn/**rn * 最简单的基于FFmpeg的<em>视频</em><em>播放</em>器2(SDL升级版)rn * Simplest FFmpeg Player 2(SDL Update)rn *rn * 雷霄骅 Lei Xiaohuarn * leixiaohua1020@126.comrn * 中国传媒大学/数字电视技术rn * Communication University of China / Digital TV Technologyrn * http://blog.csdn.net/leixiaohua1020rn *rn * 第2版<em>使用</em>SDL2.0取代了第一版中的SDL1.2rn * Version 2 use SDL 2.0 instead of SDL 1.2 in version 1.rn *rn * 本程序实现了<em>视频</em>文件的解码和显示(支持HEVC,H.264,MPEG2等)。rn * 是最简单的FFmpeg<em>视频</em>解码方面的教程。rn * 通过学习本例子可以了解FFmpeg的解码流程。rn * 本版本中<em>使用</em>SDL消息机制刷新<em>视频</em>画面。rn * This software is a simplest video player based on FFmpeg.rn * Suitable for beginner of FFmpeg.rn *rn * 备注:rn * 标准版在<em>播放</em><em>视频</em>的时候,画面显示<em>使用</em>延时40ms的方式。这么做有两个后果:rn * (1)SDL弹出的窗口无法移动,一直显示是忙碌状态rn * (2)画面显示并不是严格的40ms一帧,因为还没有考虑解码的时间。rn * SU(SDL Update)版在<em>视频</em>解码的过程中,不再<em>使用</em>延时40ms的方式,而是创建了rn * 一个线程,每隔40ms发送一个自定义的消息,告知主函数进行解码显示。这样做之后:rn * (1)SDL弹出的窗口可以移动了rn * (2)画面显示是严格的40ms一帧rn * Remark:rn * Standard Version use's SDL_Delay() to control video's frame rate, it has 2rn * disadvantages:rn * (1)SDL's Screen can't be moved and always "Busy".rn * (2)Frame rate can't be accurate because it doesn't consider the time consumed rn * by avcodec_decode_video2()rn * SU(SDL Update)Version solved 2 problems above. It create a thread to send SDL rn * Event every 40ms to tell the main loop to decode and show video frames.rn */rnrn#include rnrn#define __STDC_CONSTANT_MACROSrnrn#ifdef _WIN32rn//Windowsrnextern "C"rnrn#include "libavcodec/avcodec.h"rn#include "libavformat/avformat.h"rn#include "libswscale/swscale.h"rn#include "SDL2/SDL.h"rn;rn#elsern//Linux...rn#ifdef __cplusplusrnextern "C"rnrn#endifrn#include rn#include rn#include rn#include rn#ifdef __cplusplusrn;rn#endifrn#endifrnrn//Refresh Eventrn#define SFM_REFRESH_EVENT (SDL_USEREVENT + 1)rnrnint thread_exit=0;rnrnint sfp_refresh_thread(void *opaque)rn while (thread_exit==0) rn SDL_Event event;rn event.type = SFM_REFRESH_EVENT;rn SDL_PushEvent(&event);rn SDL_Delay(20);rn rn return 0;rnrnrnrnint main(int argc, char* argv[])rnrnrn AVFormatContext *pFormatCtx;rn int i, videoindex;rn AVCodecContext *pCodecCtx;rn AVCodec *pCodec;rn AVFrame *pFrame,*pFrameYUV;rn uint8_t *out_buffer;rn AVPacket *packet;rn int ret, got_picture;rnrn //------------SDL----------------rn int screen_w,screen_h;rn SDL_Window *screen; rn SDL_Renderer* sdlRenderer;rn SDL_Texture* sdlTexture;rn SDL_Rect sdlRect;rn SDL_Thread *video_tid;rn SDL_Event event;rnrn struct SwsContext *img_convert_ctx;rnrn// char filepath[]="bigbuckbunny_480x272.h265";rn// char filepath[]="<em>rtsp</em>://169.254.20.11:554/user=admin&password=&channel=2&stream=0.sdp?";rn char filepath[]="<em>rtsp</em>://218.204.223.237:554/live/1/0547424F573B085C/gsfp90ef4k0a6iap.sdp";rn// char filepath[]="h0_928x576.<em>h264</em>";//////可能是分辨率的<em>问题</em>////////////rnrn av_register_all();rn avformat_network_init();rn pFormatCtx = avformat_alloc_context();rnrn if(avformat_open_input(&pFormatCtx,filepath,NULL,NULL)!=0)rn rn printf("Couldn't open input stream.\n");///////////////////////rn return -1;rn rn if(avformat_find_stream_info(pFormatCtx,NULL)streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO)rn rn videoindex=i;rn break;rn rn if(videoindex==-1)rn rn printf("Didn't find a video stream.\n");rn return -1;rn rn pCodecCtx=pFormatCtx->streams[videoindex]->codec;rn pCodec=avcodec_find_decoder(pCodecCtx->codec_id);rn if(pCodec==NULL)rn printf("Codec not found.\n");rn return -1;rn rn if(avcodec_open2(pCodecCtx, pCodec,NULL)width, pCodecCtx->height));rn avpicture_fill((AVPicture *)pFrameYUV, out_buffer, PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height);rnrn //Output Info-----------------------------rn printf("---------------- File Information ---------------\n");rn av_dump_format(pFormatCtx,0,filepath,0);rn printf("-------------------------------------------------\n");rn rn img_convert_ctx = sws_getContext(pCodecCtx->width, pCodecCtx->height, pCodecCtx->pix_fmt, rn pCodecCtx->width, pCodecCtx->height, PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL); rn rnrn if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) rn printf( "Could not initialize SDL - %s\n", SDL_GetError()); rn return -1;rn rn //SDL 2.0 Support for multiple windowsrn screen_w = pCodecCtx->width;rn screen_h = pCodecCtx->height;rn screen = SDL_CreateWindow("Simplest <em>ffmpeg</em> player's Window", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,rn screen_w, screen_h,SDL_WINDOW_OPENGL);rnrn if(!screen) rn printf("SDL: could not create window - exiting:%s\n",SDL_GetError()); rn return -1;rn rn sdlRenderer = SDL_CreateRenderer(screen, -1, 0); rn //IYUV: Y + U + V (3 planes)rn //YV12: Y + V + U (3 planes)rn sdlTexture = SDL_CreateTexture(sdlRenderer, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STREAMING,pCodecCtx->width,pCodecCtx->height); rnrn sdlRect.x=0;rn sdlRect.y=0;rn sdlRect.w=screen_w;rn sdlRect.h=screen_h;rnrn packet=(AVPacket *)av_malloc(sizeof(AVPacket));rnrn video_tid = SDL_CreateThread(sfp_refresh_thread,NULL,NULL);rn //------------SDL End------------rn //Event Looprn rn for (;;) rn //Waitrn SDL_WaitEvent(&event);rn if(event.type==SFM_REFRESH_EVENT)rn //------------------------------rn if(av_read_frame(pFormatCtx, packet)>=0)rn if(packet->stream_index==videoindex)rn ret = avcodec_decode_video2(pCodecCtx, pFrame, &got_picture, packet);rn if(ret < 0)rn printf("Decode Error.\n");rn return -1;rn rn if(got_picture)rn sws_scale(img_convert_ctx, (const uint8_t* const*)pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameYUV->data, pFrameYUV->linesize);rn //SDL---------------------------rn SDL_UpdateTexture( sdlTexture, NULL, pFrameYUV->data[0], pFrameYUV->linesize[0] ); rn SDL_RenderClear( sdlRenderer ); rn //SDL_RenderCopy( sdlRenderer, sdlTexture, &sdlRect, &sdlRect ); rn SDL_RenderCopy( sdlRenderer, sdlTexture, NULL, NULL); rn SDL_RenderPresent( sdlRenderer ); rn //SDL End-----------------------rn rn rn av_free_packet(packet);rn elsern //Exit Threadrn thread_exit=1;rn break;rn rn else if(event.type==SDL_QUIT)rn thread_exit=1;rn break;rn rnrn rnrn sws_freeContext(img_convert_ctx);rnrn SDL_Quit();rn //--------------rn av_frame_free(&pFrameYUV);rn av_frame_free(&pFrame);rn avcodec_close(pCodecCtx);rn avformat_close_input(&pFormatCtx);rnrn return 0;rnrnrnrn[/code]
关于使用CKplayer播放m3u8视频出现没有视频问题分析
由于项目的需求,需要在网页上<em>使用</em><em>播放</em>器<em>播放</em>HLS m3u8的<em>视频</em>。看到网上<em>关于</em>CKplayer的介绍,<em>使用</em>了这个开源的<em>播放</em>器。 从CKplayer的官网找到了m3u8的插件。可是<em>使用</em>之后<em>出现</em>了<em>问题</em>。 此时<em>视频</em>已经开始<em>播放</em>,通过开发者工具查看 、 可以清楚看到切片已经开始下载。 <em>使用</em>vlc<em>播放</em>该<em>视频</em>可以正常<em>播放</em>。考虑可能是推流<em>问题</em>,从网络上找了开放的m3u8地址,均可以正常<em>播放</em>
视频花屏
我用ActiveX做出的控件在<em>播放</em><em>视频</em>的时候,有的<em>视频</em>在过一段时间后就会<em>花屏</em>。
ffmpeg h264 视频编码 模糊问题、MP4播放速度快问题
本文<em>使用</em> <em>ffmpeg</em>的dll、lib、include进行<em>视频</em>编码。相关基本知识可参考以下博客:https://blog.csdn.net/cfqcfqcfqcfqcfq/article/details/68496213编码生成的<em>视频</em>模糊、清晰度特别差。原因是:未对编码器的上下文信息的码率进行显示设置,或设置的过低,(默认的值太小不满足)AVCodecContext* pCodecCtx;//编码...
Android使用FFmpeg 解码H264并播放(二)
上一节记录了Android<em>使用</em>FFmpeg环境搭建过程。这一节记录<em>视频</em>解码过程。<em>问题</em>描述在开发中<em>使用</em>某摄像头的SDK,只能获取到一帧帧的 H264 <em>视频</em>数据,不知道<em>视频</em>流地址,需要自己解码出图像并<em>播放</em>。<em>问题</em>解决编译FFmpeg点击查看开发环境配置点击查看解码H264原始数据格式首先看我们能获取到数据格式public class VideoStream{ //video buffer
android下使用ffmpeg解码函数播放H264文件
解压后有2个文件夹testService和<em>h264</em>_project,前者是一个android工程,后者是一个在linux下编译android中能用的<em>ffmpeg</em>工程,其中有<em>ffmpeg</em>源代码(该<em>ffmpeg</em>版本为0.7.15),H264Android.c源码和编译好的<em>ffmpeg</em>.so,H264Android.so2个库
关于ffmpeg解码h264 filter的问题
做了个<em>ffmpeg</em>解码<em>h264</em>的filter,但是有错误,麻烦大家帮忙看看有什么<em>问题</em>,先谢过了!每次sourcebuf有内容,但是avcodec_decode_video总是不成功。rn代码如下:rnBOOL CX264Decodeff:: Decode(IMediaSample *pSource, IMediaSample *pDest)rnrn LONG length = pSource->GetActualDataLength();rn int size;rn int GotPicture,ConsumedBytes;rn int i,p;rnrn HRESULT hr = pDest->GetPointer(&pDestBuffer);rn if (FAILED(hr))rn rn return hr;rn rn hr = pSource->GetPointer(&pSourceBuffer);rn if (FAILED(hr))rn rn return hr;rn rn size=pSource->GetActualDataLength();rnrn ConsumedBytes=avcodec_decode_video(c, picture, &GotPicture, pSourceBuffer, size);rn if(ConsumedBytes > 0)rn rn p=0;rn for(i=0; iheight; i++)rn rn memcpy(pDestBuffer+p,picture->data[0] + i * picture->linesize[0], c->width);rn p+=c->width;rn rn for(i=0; iheight/2; i++)rn rn memcpy(pDestBuffer+p,picture->data[2] + i * picture->linesize[2], c->width/2);rn p+=c->width/2;rn rn for(i=0; iheight/2; i++)rn rn memcpy(pDestBuffer+p,picture->data[1] + i * picture->linesize[1], c->width/2);rn p+=c->width/2;rn rn rn pDest->SetActualDataLength(320 * 240 * 2);rn pDest->SetSyncPoint(FALSE);rn return TRUE;rn
关于videoview的截图问题rtsp播放问题
1。用videoview<em>播放</em>一个<em>rtsp</em>流,怎么可以实现videoview的截图功能,试过view.getdrawableCache()了,截不到图。rn2。用videoview怎么<em>播放</em>一个有身份认证的<em>rtsp</em>流?<em>rtsp</em>://********/stream?username=admin&password=admin 这样<em>播放</em>不了。rnrnrn谢谢了。
ffmpeg关于h264编码提示h264_mp4toannexb的问题
MP4的<em>视频</em>H264封装有2种格式:<em>h264</em>和avc1 AVC1 描述:H.264 bitstream without start codes.一般通过<em>ffmpeg</em>转码生成的<em>视频</em>,是不带起始码0x00000001的。 H264 描述:H.264 bitstream with start codes.一般对于一下HDVD等电影的压制格式,是带有起始码0x00000001的。 如
ffmpeg使用:(ubuntu)获取rtsp源流(h264)解码为YUV420p,再重新编码为h264
一 <em>ffmpeg</em>安装: 参考链接 https://blog.csdn.net/danfengw/article/details/62887997 注意:<em>ffmpeg</em>没有x264编码(带有x264解码)需要自己安装,上面链接提供安装的指令; 都安装完成后需要添加环境变量 sudo vim ~/.bashrc 在末尾添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH...
使用live555实时播放rtsp
Android原生的MediaPlayer虽然也可以<em>播放</em><em>rtsp</em>流媒体,可是却有几秒的延时,不符合实时的要求。于是需要<em>使用</em>第三方库live555来解决这个<em>问题</em>。   1、搭建live555框架   我们先下载源码,然后在eclipse里创建一个新的library工程,在工程jni下创建一个live目录,然后将源码拷贝过来。之后在jni下新建一个Android.mk和Application.
使用VideoView播放rtsp视频
1.<em>视频</em><em>播放</em>控制   package com.example.<em>rtsp</em>videoview; import android.app.ProgressDialog; import android.content.Context; import android.media.MediaPlayer; import android.media.MediaPlayer.OnPreparedLi...
ffmpeg使用filter生成H264测试视频(带时间戳OSD)
偶然发现<em>ffmpeg</em>有一个很好用的filter:testsrc。<em>使用</em>它可以快速生成指定格式、分辨率、时长的H264(或其他)测试<em>视频</em>(容器可指定),这个在某些测试环节真的很有用。特别是提供帧级精度的时间戳OSD叠加,大赞 命令如下: <em>ffmpeg</em>.exe -f lavfi -i testsrc=duration=100:size=1280x720:rate=30:decimal
关于ffmpeg视频截图问题
1、直接利用CMD命令行可以得到截图文件,如下:rnD:\\mediaDemo\\Solution1\\WebApplication2\\<em>ffmpeg</em>\\<em>ffmpeg</em>.exe -i D:\\mediaDemo\\Solution1\\WebApplication2\\video\\20100831013931.flv -y -f image2 -ss 2 -t 0.001 -s 120x100 D:\\mediaDemo\\Solution1\\WebApplication2\\Images\\abc.jpgrn2、代码调试通过,但是没有产生截图文件,如下:rnstring <em>ffmpeg</em> = "D:\\mediaDemo\\Solution1\\WebApplication2\\<em>ffmpeg</em>\\<em>ffmpeg</em>.exe";rn ProcessStartInfo startInfo = new ProcessStartInfo(<em>ffmpeg</em>);rn startInfo.WindowStyle = ProcessWindowStyle.Hidden;rn rn startInfo.Arguments = "D:\\mediaDemo\\Solution1\\WebApplication2\\<em>ffmpeg</em>\\<em>ffmpeg</em>.exe -i D:\\mediaDemo\\Solution1\\WebApplication2\\video\\20100831013931.flv -y -f image2 -ss 2 -t 0.001 -s 120x100 D:\\mediaDemo\\Solution1\\WebApplication2\\Images\\abc.jpg";rn tryrn rn Process.Start(startInfo);rn rn catchrn rn return "";rn rn return "";rnrnrn
FFMPEG读H264视频流的问题!!!!!!
RT,读一会就报rn[<em>h264</em> @ 0315f260] out of range intra chroma pred mode at 21 29psrn[<em>h264</em> @ 0315f260] error while decoding MB 21 29rn跟rn[<em>h264</em> @ 02c3af20] mb_type 7802 in P slice too large at 50 35kbpsrn[<em>h264</em> @ 02c3af20] error while decoding MB 50 35rnrn但是我用FLASH<em>播放</em>器<em>播放</em>我的实时<em>视频</em>流是没有<em>问题</em>的,不知道是什么原因,如果我发送<em>视频</em>流的时候不用H264的格式压缩,换成VP6的,那么就没有<em>问题</em>了,不会报这个错误了,H264格式的是不是读帧跟解码的时候还要设置什么吗?
ffmpeg解码h264视频出现马赛克
用<em>ffmpeg</em>解码通过rtp传输过来的<em>h264</em><em>视频</em>流,建立了环形缓冲区,同时保存到本地H264文件,实时解码时avcodec_decode_video2(context,picture,&got_picture,&avpacket);的输入为按帧输入,实时解码显示时经常<em>出现</em>丢失第一帧即参考帧的情况,同时后面还有大量的马赛克<em>出现</em>。但在用VLC<em>播放</em>器<em>播放</em>存盘的H264文件时,没有存在丢失参考帧的情况,且没有马赛克,请问这是什么原因?
ffmpeg实现H264压缩并且推流至RTSP
一、整体思路     1 利用<em>ffmpeg</em>读取出<em>视频</em>的一帧图像   存储在pFrame中     2 利用<em>ffmpeg</em>进行格式转换    sws_scale     3 利用<em>ffmpeg</em>编码存在pFrame中的图像   H264压缩     4 利用<em>ffmpeg</em>的 av_interleaved_write_frame( )  写入到<em>rtsp</em>端     5 辅助部分:解码、编码初始化,QT...
FFMPEG解码H264闪烁问题
最近在用FFMPEG做H264解码,按照官方的demo和网上的一些教程,图像是能显示出来了,但一直存在闪烁<em>问题</em>,请教下大神们这是怎么一会事?rn正常图像:(灰度图,很模糊,但这是正常的)rn[img=https://img-bbs.csdn.net/upload/201312/02/1385952587_868132.jpg][/img]rn偶见的闪烁帧:(这种偶尔<em>出现</em>一帧,影响不是很大,但毕竟是存在的<em>问题</em>)rn[img=https://img-bbs.csdn.net/upload/201312/02/1385952673_587740.jpg][/img]rn经常的闪烁帧:(经常<em>出现</em>的帧,导致<em>视频</em>下半部分看起来闪烁,感觉下面部分像是上面部分的拉伸)rn[img=https://img-bbs.csdn.net/upload/201312/02/1385952781_311805.jpg][/img]
利用ffmpeg使用v4l2读取视频,并用h264
linux下 <em>ffmpeg</em><em>使用</em>的2.5.2的库 在编译时要下载x264的库 增加编译选项--enable libx264,否则会报264编码器未找到
ffmpeg将RTSP传输的h264原始码流保存到文件中
利用<em>ffmpeg</em>将RTSP传输的<em>h264</em>原始码流保存到文件中,即保存的文件为原始<em>h264</em>码流,<em>rtsp</em>地址是测试地址,需要自己修改。很简单的一个测试程序。vs2010环境打开
ffmpeg将USB摄像头视频转发为H264的RTSP流
安装<em>ffmpeg</em>和<em>h264</em>库 $ sudo apt install <em>ffmpeg</em> libx264-dev 修改ffserver配置 $ sudo vim /etc/ffserver.conf HTTPPort 8090 HTTPBindAddress 0.0.0.0 MaxHTTPConnections 2000 MaxClients 1000 MaxBandwidth 1000 Cus...
ffmpeg解码H264视频流的问题
用<em>ffmpeg</em>解码通过jrtplib传输过来的H264视屏流,有几个<em>问题</em>需请教下:1.avcodec_decode_video2在解码时,输入的是单个Nalu包还是需等到将每帧的nalu包接收全再进行解码?若是按帧解码怎样知道每帧的nalu包的个数?2.为了使得解码<em>播放</em>时<em>视频</em>流畅,是否需要建立环形缓存区?这个环形缓存区该怎么建,有没有例子代码?
浏览器嵌套播放rtsp视频
编辑VLCindex.html,修改下面的<em>播放</em>地址
WM手机上播放RTSP视频
我今天遇到了一个<em>问题</em>,就是在WM手机上<em>播放</em>RTSP<em>视频</em>,只收到服务器返回音频数据没有<em>视频</em>。rn我用的服务器是自己的PC机,有一个外网IP指向PC。我用WIFI<em>播放</em>通过访问内网IP就可以<em>播放</em>,但是安上移动的卡访问外网IP<em>播放</em>就只返回音频没有<em>视频</em>数据,但是我在PC上抓包,服务器也发了<em>视频</em>包。如果要说是移用的<em>问题</em>,那为什么realplayer就可以<em>播放</em>呢?晕了
vlc for android源码工程播放rtsp视频
本人做项目需要用到vlc解码<em>rtsp</em><em>视频</em>,自己编译最新版还没通过,这是网上的源码工程经过简化可以<em>播放</em><em>rtsp</em><em>视频</em>,其他格式没有测试,应该会支持很多种类的<em>视频</em>格式,可以直接导入eclipse运行,默认android target 5.0,可自己根据需要修改。如果有时间编译通过会再上传最新版本。
HTML播放海康视频的RTSP视频
亲测,可用,通过HTML<em>播放</em>海康<em>视频</em>的RTSP<em>视频</em>流 效果不错
用FFmpeg将rtsp视频流保存成H264、h265文件
<em>ffmpeg</em>:FFmpeg的名称来自MPEG<em>视频</em>编码标准,前面的“FF”代表“Fast Forward,是一套可以用来记录、转换数字音频、<em>视频</em>,并能将其转化为流的开源计算机程序。 库的组成: libavformat:用于各种音<em>视频</em>封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音<em>视频</em>帧等功能; libavcodec:用于各种类型声音/图像编解码; libavutil:包...
HI3536播放H264卡住问题H264文件
HI3536<em>播放</em>H264卡住<em>问题</em>H264文件 来源是IPAD通过AIRPLAY协议推送
ffmpeg解码h264问题
各位大神,live555接收的<em>h264</em>格式的<em>视频</em>流,直接保存成文件,然后用avformat_open_input打开获取解码器进行解码是成功的,rn但是如果自己手动设置解码参数,构建解码器然后解码获取到的每一帧,却是经常<em>出现</em>以下错误,请教各位大神,<em>问题</em><em>出现</em>在哪里,解码有哪些必须的参数?rnrnrnrn[img=http://img.my.csdn.net/uploads/201304/10/1365569651_5842.png][/img]
ffplay播放rtsp视频没有正常结束
我用ffplay(<em>ffmpeg</em>版本3.0.1)<em>播放</em><em>rtsp</em><em>视频</em>,按照正常交互,关闭<em>视频</em>窗口后应该发送teardown消息。rn通过查看ffplay代码以及trace日志,ffplay的确会发送teardown消息,但是通过wireshark抓包,未收到teardown消息,<em>视频</em>流发送也未停止,通过自己写的程序,能够发送teardown消息,服务端也能正常响应。rnrn不知道这个算是ffplay的bug呢,还是有什么特殊的设置之类的,如果哪位同仁研究过这个<em>问题</em>请给点提示,或者有兴趣的可以一块研究一下这个<em>问题</em>。
h264视频如何在浏览器播放
如何才能在浏览器中<em>播放</em><em>h264</em>格式的<em>视频</em>
tiles2.0.6官方jar包下载
tiles2.0.6官方jar包 相关下载链接:[url=//download.csdn.net/download/lushuaiyin/3819571?utm_source=bbsseo]//download.csdn.net/download/lushuaiyin/3819571?utm_source=bbsseo[/url]
spring邮件发送下载
实现邮件的发送,里面有相应的jar包和代码,运行起来就可以跑起来 相关下载链接:[url=//download.csdn.net/download/antony102201/3914825?utm_source=bbsseo]//download.csdn.net/download/antony102201/3914825?utm_source=bbsseo[/url]
可以更换样式的日历下载
可以更换样式的日历 相关下载链接:[url=//download.csdn.net/download/hexueli163/3946754?utm_source=bbsseo]//download.csdn.net/download/hexueli163/3946754?utm_source=bbsseo[/url]
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑
我们是很有底线的