windows ffmpeg7 通过rtsp拉取h265裸流

2024-04-12 06:52

本文主要是介绍windows ffmpeg7 通过rtsp拉取h265裸流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击下边那个链接会转到github

下载完成后,添加include、lib到工程。

添加头文件:

extern "C" {
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavformat/avio.h"
#include "libswscale/swscale.h"
}

代码:

AVDictionary* options = NULL;
av_dict_set(&options, "buffer_size", "1024000", 0); //设置缓存大小,1080p可将值跳到最大
av_dict_set(&options, "rtsp_transport", "tcp", 0); //以tcp的方式打开,
av_dict_set(&options, "stimeout", "5000000", 0); //设置超时断开链接时间,单位us
av_dict_set(&options, "max_delay", "500000", 0); //设置最大时延AVFormatContext* pFormatCtx = avformat_alloc_context(); //用来申请AVFormatContext类型变量并初始化默认参数,申请的空间//打开网络流或文件流
if (avformat_open_input(&pFormatCtx, pUrl, NULL, &options) != 0){printf("Couldn't open input stream.\n");return ;
}//获取视频文件信息
if (avformat_find_stream_info(pFormatCtx, NULL) < 0){printf("Couldn't find stream information.\n");return ;
}//查找码流中是否有视频流
int video_stream_index = -1;
for (int i = 0; i < pFormatCtx->nb_streams; i++) {if (pFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {video_stream_index = i;}
}
if (video_stream_index == -1) {printf("video_stream_index = -1\n");return;
}
AVPacket* packet = (AVPacket*)av_malloc(sizeof(AVPacket)); // 申请空间,存放的每一帧数据 (h264、h265)FILE* pFile = fopen("test.h265", "wb");//
while (true){if (av_read_frame(pFormatCtx, packet) >= 0){if (packet->stream_index == video_stream_index){fwrite(packet->data, 1, packet->size, pFile);}av_packet_unref(packet);}
}fclose(pFile);
av_free(packet);
avformat_close_input(&pFormatCtx);

这篇关于windows ffmpeg7 通过rtsp拉取h265裸流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896415

相关文章

问题-windows-VPN不正确关闭导致网页打不开

为什么会发生这类事情呢? 主要原因是关机之前vpn没有关掉导致的。 至于为什么没关掉vpn会导致网页打不开,我猜测是因为vpn建立的链接没被更改。 正确关掉vpn的时候,会把ip链接断掉,如果你不正确关掉,ip链接没有断掉,此时你vpn又是没启动的,没有域名解析,所以就打不开网站。 你可以在打不开网页的时候,把vpn打开,你会发现网络又可以登录了。 方法一 注意:方法一虽然方便,但是可能会有

Windows/macOS/Linux 安装 Redis 和 Redis Desktop Manager 可视化工具

本文所有安装都在macOS High Sierra 10.13.4进行,Windows安装相对容易些,Linux安装与macOS类似,文中会做区分讲解 1. Redis安装 1.下载Redis https://redis.io/download 把下载的源码更名为redis-4.0.9-source,我喜欢跟maven、Tomcat放在一起,就放到/Users/zhan/Documents

Windows中,.net framework 3.5安装

安装.net framework,目前已知2种方法,如下: 一、在MSDN下载对应的安装包,安装,这种可能无法安装成功,概率很大,不成功使用第二种方法,基本上没问题。 二、win8/8.1/10 下安装 .net framework 3.5.1: 1. 打开 win8/8.1/10 安装盘(这里指系统安装镜像文件),提取 sources\sxs 文件夹到 X:\sources\sxs (X代

Windows 可变刷新率是什么?如何开启?

在现代计算设备中,显示屏的刷新率对用户体验起着至关重要的作用。随着显示技术的不断进步,固定刷新率显示器逐渐被支持可变刷新率(Variable Refresh Rate, VRR)技术的显示器所取代。 可变刷新率定义 可变刷新率是什么?可变刷新率(VRR)是一种显示技术,它允许显示器的刷新率动态调整,以匹配显卡输出的帧率。传统的显示器通常具有固定的刷新率(如60Hz、75Hz等),这意味着显示器

如何设置windows计划任务

如何设置windows计划任务 前言:在工作过程中写了一个python脚本,用于调用jira接口查询bug单数量,想要在本地定时任务执行,每天发送到钉钉群提醒,写下操作步骤用于记录。 1. 准备 Python 脚本 确保你的 Python 脚本已经保存到一个文件,比如 jira_reminder.py。 2. 创建批处理文件 为了方便任务计划程序运行 Python 脚本,创建一个批处理文

获取Windows系统版本号(转)

https://blog.csdn.net/sunflover454/article/details/51525179

【已解决】在IDEA中使用Git拉取代码时提示:Can‘t update / master has no tracked branch

文章目录 问题描述原因分析解决方案 问题描述 在IDEA中使用Git拉取代码,尝试更新本地项目代码,提示 " Can't update / master has no tracked branch ",如下图所示: 原因分析 出现上述问题意味着本地名为master的分支(或者在很多新项目中为了更包容性已改为main作为默认分支名)并没有设置为跟踪任何远程分支。

博通5720 windows server 2003 32位网卡驱动和系统

driver for DELL R320 Broadcom 5720 Windows 2003 32bit 本人安装windows server 2003 网卡驱动成功!! 提供方便网盘下载地址博通5720网卡驱动 : http://pan.baidu.com/s/1GQWpw  windows server 2003 ghost 系统: http://pan

Linux平台与Windows平台字节对齐(一)

记录时间:2014-10-20 20:31 今天白天在整理 winndows平台 + Arm平台的网络数据包。但期间由于经验不足,不了解两平台CPU架构的差距会影响到数据类型的大小,导致在工程非常紧急的时间里还浪费了很多宝贵的时间,鉴于问题的常见性 和 隐秘行,特此列出,以便能帮助需要帮助的人。 解决问题思路:在遇到网络交互数据不对时,可以从如下四方面去排除问题,通常只要使用这三种

windows桌面运维---第八天

1、如何判断环路: 1、执行ping命令:网络测试时发现丢包严重,可能是环路引起的 2、监控MAC地址漂移:频繁的MAC漂移是环路的一个迹象。 3、通过display interface brief | include up命令,查看所有UP接口下的流量 2、如何释放和更新PC上的IP地址: 先释放现有IP,在CMD命令行输入“ipconfig/release”。 获取新IP,还是在