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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【opencv】示例-detect_blob.cpp

// 导入所需的OpenCV头文件 #include <opencv2/core.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/highgui.hpp> #include <opencv2/features2d.hpp> // 导入向量和映射容器 #include <vector> #include <map> // 导入输入输出…

微软卡内基梅隆大学:无外部干预,GPT4等大语言模型难以自主探索

目录 引言&#xff1a;LLMs在强化学习中的探索能力探究 研究背景&#xff1a;LLMs的在情境中学习能力及其重要性 实验设计&#xff1a;多臂老虎机环境中的LLMs探索行为 实验结果概览&#xff1a;LLMs在探索任务中的普遍失败 成功案例分析&#xff1a;Gpt-4在特定配置下的探…

【QT入门】Qt自定义控件与样式设计之qss的加载方式

往期回顾 【QT入门】 Qt自定义控件与样式设计之QPushButton点击按钮弹出菜单-CSDN博客 【QT入门】Qt自定义控件与样式设计之QProgressBar用法及qss-CSDN博客 【QT入门】 Qt自定义控件与样式设计之QSlider用法及qss-CSDN博客 【QT入门】Qt自定义控件与样式设计之qss的加载方式 …

JDBC看这一篇就够了

JDBC核心技术 第1章&#xff1a;JDBC概述 1.1 数据的持久化 持久化(persistence)&#xff1a;把数据保存到可掉电式存储设备中以供之后使用。大多数情况下&#xff0c;特别是企业级应用&#xff0c;数据持久化意味着将内存中的数据保存到硬盘上加以”固化”&#xff0c;而持久…

centos7上docker搭建vulhub靶场

1 vulhub靶场概述 VulHub是一个在线靶场平台&#xff0c;提供了丰富的漏洞环境供安全爱好者学习和实践。 该平台主要面向网络安全初学者和进阶者&#xff0c;通过模拟真实的漏洞环境&#xff0c;帮助用户深入了解漏洞的成因、利用方式以及防范措施。 此外&#xff0c;VulHub还…

Kubernetes学习笔记7

使用kubeadm部署Kubernetes集群方法 使用kubernetes部署单节点Master节点K8s集群。 在实际生产环境中&#xff0c;是不允许单master节点的&#xff0c;如果单master节点不可用的话&#xff0c;当导致我们的K8s集群无法访问。 可以使用kubeadm将单master节点升级为多master节点…

ResultBuilder学习笔记三:支持循环

ResultBuilder学习笔记三&#xff1a;支持循环 我们在前面的博文中创建了一个非常简单的结果构建器ConcatBuilder&#xff0c;用于连接多个字符串&#xff0c;随后在后续博文中对之进行了扩展&#xff0c;使其可以支持自定义的输入数据类型&#xff0c;这个特性非常重要&#…

数据库语言:DDL与DML详解

目录 数据库语言&#xff1a;DDL与DML详解引言数据定义语言&#xff08;DDL&#xff09;什么是DDL&#xff1f;DDL的作用和重要性DDL常用命令DDL示例和用法 数据操纵语言&#xff08;DML&#xff09;什么是DML&#xff1f;DML的作用和重要性DML常用命令DML示例和用法 DDL与DML的…

智能制造六大核心发展方向,驱动企业数字化转型

在制造过程中&#xff0c;智能制造展现出非凡的活力&#xff0c;它使人与智能机器的协同工作成为可能。这不仅将制造自动化的概念提升至一个新的层次&#xff0c;更将其扩展至柔性化、智能化和高度集成化的领域。通过这样的革新&#xff0c;我们得以实现数字化智能工厂的落地生…

Linux的学习之路:5、粘滞位与vim

摘要 这里主要是把上章没说完的权限的粘滞位说一下&#xff0c;然后就是vim的一些操作。 目录 摘要 一、粘滞位 二、权限总结 三、vim的基本概念 四、vim的基本操作 五、vim正常模式命令集 1、插入模式 2、从插入模式切换为命令模式 3、移动光标 4、删除文字 5、复…

Spring MVC体系结构和处理请求控制器(一)

一、MVC模式 MVC模式是指Model-View-Controller&#xff08;模型-视图-控制器&#xff09;模式&#xff0c;是开发Web应用程序时常用的一种代码分层模式MVC模式是软件工程中的一种架构模式&#xff0c;会强制行的把系统的输入、处理和输出分开&#xff0c;是系统从功能上形成M…

我的小程序接口被刷爆了

自然流量的惊喜 书接上文&#xff0c;凭着短视频的好奇&#xff0c;搭了个小程序&#xff0c;做了文案提取&#xff0c;配音等功能&#xff0c;也顺带写了两篇口水文章&#xff0c;不曾想居然收获历史最高的点赞与收藏。有兴趣的朋友可以点这里一看究尽&#xff1a;《短视频配音…

B02、GC日志分析-案例演示-6.4

1、案例一&#xff1a;堆溢出演示 1.1、简单springboot项目创建 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:s…

立方变自身 蓝桥杯 java

题目 观察下面的现象,某个数字的立方&#xff0c;按位累加仍然等于自身。 1^3 1 8^3 512 5128 17^3 4913 491317 … 请你计算包括1,8,17在内&#xff0c;符合这个性质的正整数一共有多少个&#xff1f; 请填写该数字&#xff0c;不要填写任何多余的内容或说明性的文字。 答…

环形队列的简单理解

多次遇到环形队列的情况&#xff0c;记不住什么情况是队列满&#xff0c;什么情况是队列空。一直也没有理解透彻。 仔细研究了一下&#xff0c;掌握了一些原理&#xff0c;记录一下。 1. 环形队列有一个头指针head&#xff0c;一个为指针tail。有一个疑问&#xff1a;head和ta…

更换淘宝镜像地址,旧的已经失效(https://registry.npm.taobao.org )

旧的镜像地址&#xff1a;npm install --registryhttps://registry.npm.taobao.org 新的镜像地址&#xff1a;npm install --registryhttps://registry.npmmirror.com

【2024最新博客美化教程重置版】今天教你如何使用SimpleMemory美化你的博客,体会一下大神是如何装逼的!

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 SimpleMemory …

代理与反向代理

Java项目的代理与反向代理 1. 代理 定位&#xff1a;为客户端服务通信方向&#xff1a;客户端->代理服务器->远程服务器好处&#xff1a;对客户端行为进行过滤和控制&#xff1b;隐藏客户端IP地址&#xff1b;审计流量&#xff1b;缓存资源加快访问速度&#xff1b; 2…

ChatGPT 写作利器:探索ChatGPT在论文写作中的应用

ChatGPT无限次数:点击直达 ChatGPT 写作利器&#xff1a;探索ChatGPT在论文写作中的应用 引言 ChatGPT是一种强大的自然语言处理工具&#xff0c;能够为我们提供高效、准确的文本生成功能。在论文写作领域&#xff0c;ChatGPT的应用也逐渐受到关注。本文将探讨ChatGPT在论文写…

javascript:call()、apply()、bind()的区别和使用

javascript&#xff1a;call()、apply()、bind()的区别和使用 1 前言 记录javascript的call、apply、bind方法绑定this的区别以及使用。 call、apply、bind的区别&#xff1a; 【相同点】&#xff1a;作用相同&#xff0c;都是动态修改this指向&#xff1b;都不会修改原先函…