利用FFmpeg 将 rtsp 获取H264裸流并保存到文件中

本文介绍了如何利用FFmpeg通过RTSP获取H264裸流,并将其保存到文件中。首先,通过RTSP获取H264流,然后使用FFmpeg进行解码和保存。示例代码展示了如何实现这一过程。

既然已经可以通过 RTSP 获取h264 裸流了。那么通过 FFmpeg 将其保存到文件中怎么做呢?

一、首先RTSP获取 h264 裸流

我们上面两篇文章主要讲的是通过 rtsp://Your ip:554/stream_chn0.h265 播放H.265视频流。

PS:我刚试了一下,我的 FFmpeg 程序暂时不支持 h265 ...   之前编译的时候,只提供了 x264没有x265

如果感兴趣参看下面两篇文章添加。

参看:使用VS2015添加对ffmpeg添加h265 支持。

参看:ffmpeg 编码H265和H264对比

再结合之前讲的,FFmepg 再学习系列,应该是没问题的。不过好久没有弄了,早忘了了。

 

那现在没有可以播放的 H.264 视频流了啊,怎么办?

有办法之前讲过一篇文章,参看:LIVE555再学习 -- VLC搭建RTSP服务器(转) 用VLC搭建一个不就完了。

 

当然还可以直接用 live555,参看:LIVE555再学习 -- live555实现RTSP直播服务器  (推荐)

二、FFmpeg 将H.264 裸流保存到文件

这个也好说,之前有讲到,参看:FFmpeg再学习 -- SDL 环境搭建和视频显示

将其改改就可以了。

具体代码如下:

参看:利用ffmpeg将RTSP传输的h264原始码流保存到文件中

 

[cpp]  view plain   copy
 
  1. #include "stdafx.h"  
  2.   
  3. #include <stdio.h>    
  4.   
  5. #define __STDC_CONSTANT_MACROS    
  6.   
  7. #ifdef _WIN32    
  8. //Windows    
  9. extern "C"  
  10. {  
  11. #include "libavcodec/avcodec.h"    
  12. #include "libavformat/avformat.h"    
  13. #include "libswscale/swscale.h"    
  14. #include "SDL2/SDL.h"    
  15. };  
  16. #else    
  17. //Linux...    
  18. #ifdef __cplusplus    
  19. extern "C"  
  20. {  
  21. #endif    
  22. #include <libavcodec/avcodec.h>    
  23. #include <libavformat/avformat.h>    
  24. #include <libswscale/swscale.h>    
  25. #include <SDL2/SDL.h>    
  26. #ifdef __cplusplus    
  27. };  
  28. #endif    
  29. #endif    
  30.   
  31. int main(int argc, char* argv[])  
  32. {  
  33.   
  34.     AVFormatContext *pFormatCtx;  
  35.     int             i, videoindex;  
  36.     AVCodecContext  *pCodecCtx;  
  37.     AVCodec         *pCodec;  
  38.     AVFrame *pFrame, *pFrameYUV;  
  39.     uint8_t *out_buffer;  
  40.     AVPacket *packet;  
  41.     int ret, got_picture;  
  42.   
  43.   
  44.     struct SwsContext *img_convert_ctx;  
  45.     // 改成你自己的 URL  
  46.     char filepath[] = "rtsp://192.168.2.xx:8554/1";   
  47.     av_register_all();  
  48.     avformat_network_init();  
  49.     pFormatCtx = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值