windows下支持H265的rtmp ffplay播放器 ffmpeg的编译

article/2025/11/6 17:23:49

        前几天在项目中添加了rtmp对H265的支持,需要推流端 服务器端 以及播放器三个方面的处理。功能已经实现 ,感兴趣的可以 去我的上一篇文章看下。

RTMP 推送H265的实现(推流端、服务器、播放端)ffmpeg 播放H265

        之前是在的播放器是在Ubuntu下面编译的。考虑到测试的很多都没有安装Ubunt的系统。所以今天考虑编译一个windows下面的ffplay版本。百度下 基本流程是需要安装mingw64  msys yasm。

至于怎么安装mingw64 msys 可以百度下 网上有很多介绍 这些我之前已经安装好了 。

今天主要做的工作如下

1.下载 yasm这个直接从官网下一个exe然后改个名字放到C:\mingw64\msys\bin目录下(我自己是这个目录大家可以根据自己的实际情况更改就可以)

2.编译SDL的 (默认编译ffmpeg的时候 会自动检测系统之是否安装了SDL 如果没有检测到的话是不会编译ffplay的)

直接去SDL的官网 下载 源码包 我下的是 SDL2-2.0.18版本 解压放到 C:\mingw64\msys目录下

然后新建一个build.sh脚本 内容如下 

./configure --prefix=/usr/local/SDL

然后执行这个脚本 之后 make     make install  正常没问题之后 就会安装到C:\mingw64\msys\local这个目录下  (这里说一下关于这个目录 虽然脚本里面写了/usr/local/SDL目录,然后安装完会发现并没有生成usr这个目录,直接安装到local目录下了 ,个人理解应该是直接把C:\mingw64\msys当成usr目录了)

如下图

 

这一步做完还不够 需要把SDL添加到环境变量,不然ffmpeg执行脚本的时候还是检测不到SDL

export PATH=”$PATH:/usr/local/SDL/bin"
export C_INCLUDE_PATH="$C_INCLUDE_PATH:/usr/local/SDL/include/SDL"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/SDL/lib”

 这一步完成之后 进入ffmpeg目录 同样的操作 新建一个build.sh脚本

内容如下:(--enable-rtmp_h265是我自己定义的选项,需要用这个宏去修改ffmpeg源码,如何修改可以参考我之前的一边文章.这里不再赘述)

./configure --prefix=./install	\--disable-x86asm	\--enable-rtmp_h265

保存之后./build.sh(我的输入这个脚本之后)

可以去ffbuild目录下查看config.mak

CONFIG_RTMP_H265=yes 

CONFIG_SDL2=yes

这两项前面都没有感叹号就说明ok了

之后make make install 就会在ffmpeg目录下生成install文件夹 bin目录下所需要的exe文件都有了

ffplay播放需要两个dll一个是libwinpthread-1.dll   另一个是SDL2.dll 正常安装ok的话就都有了

如果拿到其他的及机器上用的话需要把这两个dll文件一起复制过去  

然后输入命令等一会  正常就出来了 如下图 

懒得编译的可以点击这里下载exe版本 

ffplay rtmp://192.168.35.75:1987/live/qmcy1

 


http://chatgpt.dhexx.cn/article/O973mDGt.shtml

相关文章

服务器(公网推rtmp流),网页本地(qq浏览器)播放rtmp流,且可切换rtmp流播放。使用了video.js、videojs-flash.js、jquery-3.4.1.js和我自己写的一个js

问题: 最开始我想在下拉列表的值发生变化时将video标签包含的source标签里面的src中的rtmp流直接替换掉,达到切换rtmp源播放的目的,但是一直无法生效,最后我想每个源直接做一个html页面,发现如果有几百个源就需要做很多…

Android手机RTMP播放工具(APK,支持秒开)

Android手机RTMP播放工具是一款可以在安卓手机播放rtmp流的工具,基于FFmpegopenCV开发。 下载地址:Android手机RTMP播放工具(APK,支持秒开)-C文档类资源-CSDN下载

rtmp http mp4 网页播放器

对于页面上如何播放rtsp视频时,项目经过查阅资料后最终采用转成rtmp流在进行播放。在播放时调研了一下网页播放器,最终选择ckplayer。还有一款叫萤石云内部调用得也是ckplayer。 1. ckplayer(http://www.ckplayer.com/) ckplayer是国内网页上播放视频的…

QT实现低延迟的RTSP、RTMP播放器

好多开发者在QT环境下实现RTMP或RTSP播放时,首先考虑到的是集成VLC,集成后,却发现VLC在延迟、断网重连、稳定性等各个方面不尽人意,无法满足上线环境需求。本文以调用大牛直播SDK(官方)的Windows平台播放端…

【技术分享】如何实现功能完备性能优异的RTMP、RTSP播放器?

技术背景 这几年,我们对接了太多有RTSP或RTMP直播播放器诉求的开发者,他们当中除了寻求完整的解决方案的,还有些是技术探讨,希望能借鉴我们播放端的开发思路或功能特性,完善自己的产品。 忙里偷闲,今天我…

高稳定、低延时、高并发RTMP播放器流媒体音视频播放器EasyPlayer-RTMP-iOS器如何将核心代码打包成静态库

背景分析 RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用…

Windows平台RTMP、RTSP播放器录像模块精细化控制

技术背景 上篇文章,我们介绍了Unity平台RTMP、RTSP播放器录像功能,这里,我们详细的介绍下,做个RTSP或RTMP拉流端录像模块有哪些需要考虑的技术点? 在我们常规的考量,RTMP或RTSP流录制,无非就是…

RTMP视频播放器

感谢作者tcking、Bilibili,本项目借鉴了GiraffePlayer项目,项目一开始的灵感来源于GiraffePlayer项目,后期做纯粹做了视频播放器的界面的定制,基于ijkplayer项目进行的播放器界面UI封装。 简介 当前项目是基于ijkplayer项目进行…

从零开发一款Android RTMP播放器

1. 背景介绍 15年移动端直播应用火起来的时候,主要的直播协议是RTMP,多媒体服务以Adobe的AMS、wowza、Red5、crtmpserver、nginx rtmp module等,后面过长RTMP服务SRS开始流行。Android端播放器主要以开始以EXOPlayer播放HLS,但是…

rtsp+rtmp多路网页播放

一、前言 之前博主有写过 一篇博文,讲的是使用videojs在谷歌浏览器网页上播放rtmp流媒体,具体可参考我之前的博客:videojshlsrtmp网页播放 - 蛋片鸡 - 博客园 最近又开始研究了一下网页播放流媒体,在这里我主要补充一些播放rtmp、…

低延时极简RTMP播放器

RtmpPlaySdk简介 近期将项目上RTMP播放相关功能进行打包整理,实现了一款低延时的极简接口RTMP播放器(Windows版和Android版)。市面上的RTMP播放器较多,有开源的ijkplayer及其衍生品,也有收费的功能繁多的播放器&#…

rtmp 点播系统之播放器篇

rtmp (Real Time Media Protocal) ,是实时流媒体协议,由Adobe公司提出,属于半开放的协议。此协议基于flash平台的音视频点播协议。 音视的点播系统分为两部分,分别为客户端和服务端。在本文中我会先讲解如何实现一个简单的rtmp播放器。至于rtmp服务器的实现,会在下文中分析…

pgsql 使用技巧

1.CASCADE 级联删除,如果表或模式或数据库有序列、分区相关 依赖时,需要修改表或模式或数据库,则使用它 DROP SCHEMA viid_facestatic CASCADE 2.pgsql隐藏字段ctid,一般用于去重 3. pg 表自连接使用场景 3.1 有一张卡口表 求…

pgsql

这里写目录标题 pgpool安装pgsql流复制备份与恢复客户端验证服务器设置及操作服务器配置监控数据活动 PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES, Version 4.2为基础的对象关系型数据库管理系统(ORDBMS)。 PostgreSQL是最初伯克利代码的一个开放源码的继承者。…

pgsql基本操作

pgsql基本操作 1. 修改postgresql.conf postgresql.conf存放位置在/etc/postgresql/9.x/main下,这里的x取决于你安装PostgreSQL的版本号,编辑或添加下面一行,使PostgreSQL可以接受来自任意IP的连接请求。 listen_addresses *2. 修改pg_hb…

pgsql常用sql和函数

常用pgsql -- 列出所有schema select * from information_schema.schemata; -- Schema下所有表 select * from pg_tables where schemaname query_db and tablename in(port,device,res_carry_business,hardware,shelf,device_hardware_relation); -- Schema下所有索引 select…

PGSQL大小写敏感总结

PGSQL大小写敏感总结 由于PGSQL使用会出现大小写敏感的问题,所以在设置字段名字的时候,如果字段名需要大写需要加上""号来表示,该字段需要大写 公司业务需要我使用PGSQL创建自增主键,我在使用 nextval() 绑定创建的序列…

PGSQL常用操作

0. 启动pgsl数据库 pg_ctl -D /xx/pgdata start 回到顶部 1. 查看pgsl版本 pg_ctl --version 回到顶部 1. 命令行登录数据库 1 psql -U username -d dbname -h hostip -p port 回到顶部 2. 列出所有数据库 \l 回到顶部 3. 切换数据库 1 \c dbname 回到顶部 …

PL/pgSQL

1.简介 L/pgSQL是一种用于PostgreSQL数据库系统的可载入的过程语言。 可以被用来创建函数和触发器过程对SQL语言增加控制结构可以执行复杂计算继承所有用户定义类型、函数和操作符可以被定义为受服务器信任便于使用 [1]使用PL/pgSQL的优点 SQL 是一种查询语言,可…

Windows 10 安装配置连接PostgreSQL教程

Windows 10 安装配置连接PostgreSQL教程 1.1 PostgreSQL 下载1.2 配置环境变量1.3 PostgreSQL 初始化1.4 创建postgres用户1.5 启动postgresql1.6 客户端连接测试1.6.1 SQL Shell (psql)命令行连接测试1.6.2 客户端 pdAdmin 4 连接测试1.6.3 客户端Navicat Permium 连接测试 1.…