开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 805|回复: 23
收起左侧

[易语言模块源码] ffmepg新封装

[复制链接]
发表于 2026-7-22 07:14:55 | 显示全部楼层 |阅读模式   海南省保亭黎族苗族自治县
分享例程
界面截图:
备注说明: -
ffmpeg确实好用,市面上都是通过命令的形式进行调用,尤其是对于我们这些新手来说真的 够够够够呛咯,本来都不想在去碰C++了,这是段肋咧,可是又想用毕竟在回调取帧 还是不错,之前用的VLC 播放的视频画面是可用播放,但在截图中间会右一个卡顿的空档期  客户那边要求不运行,所以我就试着封装一下  链接我会带上 还有封装的命令希望大佬们帮我测试一下我封装的这个DLL 有哪些命令可用  如果都可用就写一个完美的易语言例子给我咯 QQ511641999加我也可以
下面是链接
通过网盘分享的文件:ffmpeg.zip
链接: https://pan.baidu.com/s/11b4-z9NVRky3MqD-4KnSVw?pwd=er3g 提取码: er3g
--来自百度网盘超级会员v1的分享


然后命令都在这里 希望大佬们帮我测试一下 这里还要说一下  如果出现堆错误的话可以试着在命令前面加上@ 因为我也搞不懂 通常遇到堆错误 我都加
.DLL命令 FF_PlayInitialize全局初始化FFmpeg底层库, , "ffmpeg.dll", "@FF_PlayInitialize"

.DLL命令 FF_PlayUninitialize程序退出反初始化, , "ffmpeg.dll", "@FF_PlayUninitialize"

.DLL命令 FF_PlayGet版本号, 整数型, "ffmpeg.dll", "@FF_PlayGetVersion"
    .参数 主版本, 整数型, 传址, 输出主版本数字
    .参数 次版本, 整数型, 传址, 输出次版本数字
    .参数 补丁版本, 整数型, 传址, 输出补丁数字

.DLL命令 FF_Play设置日志等级, , "ffmpeg.dll", "FF_PlaySetLogLevel"
    .参数 等级, 整数型, , 日志等级数值

.DLL命令 FF_Play设置日志回调, , "ffmpeg.dll", "FF_PlaySetLogCallback"
    .参数 回调地址, 子程序指针, , 日志回调子程序指针

.DLL命令 FF_Play加载默认配置, , "ffmpeg.dll", "FF_PlayDefaultConfig"
    .参数 配置结构体, FF_PlayerConfig, 传址, 播放器配置变量

.DLL命令 FF_Play创建播放器, 整数型, "ffmpeg.dll", "FF_PlayCreate"

.DLL命令 FF_Play应用配置, 整数型, "ffmpeg.dll", "FF_PlayConfigure"
    .参数 播放器句柄, 整数型, , FF_PlayCreate返回的句柄
    .参数 配置结构体, FF_PlayerConfig, 传址, 配置参数

.DLL命令 FF_Play打开媒体简易, 整数型, "ffmpeg.dll", "FF_PlayOpen"
    .参数 播放器句柄, 整数型
    .参数 媒体地址, 文本型, , 文件路径或网络流URL

.DLL命令 FF_Play打开媒体高级, 整数型, "ffmpeg.dll", "FF_PlayOpenEx"
    .参数 播放器句柄, 整数型
    .参数 媒体地址, 文本型
    .参数 强制格式, 文本型, , 空字符串自动识别格式
    .参数 视频轨道索引, 整数型, , -1自动匹配
    .参数 音频轨道索引, 整数型, , -1自动匹配

.DLL命令 FF_Play注册画面回调, 整数型, "ffmpeg.dll", "FF_PlaySetFrameCallback"
    .参数 播放器句柄, 整数型
    .参数 回调地址, 子程序指针, , 帧处理子程序
    .参数 自定义透传数据, 整数型, , 自定义指针透传

.DLL命令 FF_Play注册音频回调, 整数型, "ffmpeg.dll", "FF_PlaySetAudioCallback"
    .参数 播放器句柄, 整数型
    .参数 回调地址, 子程序指针
    .参数 自定义透传数据, 整数型

.DLL命令 FF_Play注册错误回调, 整数型, "ffmpeg.dll", "FF_PlaySetErrorCallback"
    .参数 播放器句柄, 整数型
    .参数 回调地址, 子程序指针
    .参数 自定义透传数据, 整数型

.DLL命令 FF_Play注册状态回调, 整数型, "ffmpeg.dll", "FF_PlaySetStateChangeCallback"
    .参数 播放器句柄, 整数型
    .参数 回调地址, 子程序指针
    .参数 自定义透传数据, 整数型

.DLL命令 FF_Play注册重连回调, 整数型, "ffmpeg.dll", "FF_PlaySetReconnectCallback"
    .参数 播放器句柄, 整数型
    .参数 回调地址, 子程序指针
    .参数 自定义透传数据, 整数型

.DLL命令 FF_Play开始播放, 整数型, "ffmpeg.dll", "FF_PlayStart"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play暂停播放, 整数型, "ffmpeg.dll", "FF_PlayPause"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play恢复播放, 整数型, "ffmpeg.dll", "FF_PlayResume"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play停止播放, 整数型, "ffmpeg.dll", "FF_PlayStop"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play从头重播, 整数型, "ffmpeg.dll", "FF_PlayRestart"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play按秒跳转, 整数型, "ffmpeg.dll", "FF_PlaySeek"
    .参数 播放器句柄, 整数型
    .参数 目标秒数, 双精度小数型, , 跳转时间点

.DLL命令 FF_Play按帧跳转, 整数型, "ffmpeg.dll", "FF_PlaySeekToFrame"
    .参数 播放器句柄, 整数型
    .参数 目标帧号, 长整数型, , 帧序号

.DLL命令 FF_Play获取播放状态, 整数型, "ffmpeg.dll", "FF_PlayGetState"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play获取总时长, 双精度小数型, "ffmpeg.dll", "FF_PlayGetDuration"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play获取当前时间, 双精度小数型, "ffmpeg.dll", "FF_PlayGetCurrentTime"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play获取分辨率, 整数型, "ffmpeg.dll", "FF_PlayGetVideoSize"
    .参数 播放器句柄, 整数型
    .参数 画面宽度, 整数型, 传址, 输出宽度
    .参数 画面高度, 整数型, 传址, 输出高度

.DLL命令 FF_Play获取帧率, 整数型, "ffmpeg.dll", "FF_PlayGetFrameRate"
    .参数 播放器句柄, 整数型
    .参数 帧率数值, 双精度小数型, 传址

.DLL命令 FF_Play获取码率, 整数型, "ffmpeg.dll", "FF_PlayGetBitRate"
    .参数 播放器句柄, 整数型
    .参数 码率数值, 整数型, 传址

.DLL命令 FF_Play获取轨道数量, 整数型, "ffmpeg.dll", "FF_PlayGetStreamCount"
    .参数 播放器句柄, 整数型
    .参数 视频轨道数, 整数型, 传址
    .参数 音频轨道数, 整数型, 传址
    .参数 字幕轨道数, 整数型, 传址

.DLL命令 FF_Play获取轨道信息, 整数型, "ffmpeg.dll", "FF_PlayGetStreamInfo"
    .参数 播放器句柄, 整数型
    .参数 轨道索引, 整数型
    .参数 轨道信息结构体, FF_StreamInfo, 传址

.DLL命令 FF_Play解码统计, 整数型, "ffmpeg.dll", "FF_PlayGetStatistics"
    .参数 播放器句柄, 整数型
    .参数 已解码帧数, 整数型, 传址
    .参数 丢弃帧数, 整数型, 传址
    .参数 丢失数据包, 整数型, 传址
    .参数 单帧耗时, 双精度小数型, 传址

.DLL命令 FF_Play获取最后错误, 整数型, "ffmpeg.dll", "FF_PlayGetLastError"
    .参数 播放器句柄, 整数型
    .参数 错误码, 整数型, 传址
    .参数 错误文本缓冲, 字节集, 传址
    .参数 缓冲长度, 整数型

.DLL命令 FF_Play开始录制, 整数型, "ffmpeg.dll", "FF_PlayStartRecording"
    .参数 播放器句柄, 整数型
    .参数 保存路径, 文本型
    .参数 录制格式, 整数型

.DLL命令 FF_Play停止录制, 整数型, "ffmpeg.dll", "FF_PlayStopRecording"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play是否录制中, 整数型, "ffmpeg.dll", "FF_PlayIsRecording"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play注册录制回调, 整数型, "ffmpeg.dll", "FF_PlaySetRecordCallback"
    .参数 播放器句柄, 整数型
    .参数 回调地址, 子程序指针
    .参数 自定义透传数据, 整数型

.DLL命令 FF_Play指定时间取帧, 整数型, "ffmpeg.dll", "FF_PlayGetFrameAt"
    .参数 播放器句柄, 整数型
    .参数 目标秒数, 双精度小数型
    .参数 RGBA内存指针, 整数型
    .参数 行跨度, 整数型, 传址
    .参数 宽度, 整数型, 传址
    .参数 高度, 整数型, 传址

.DLL命令 FF_Play取当前帧, 整数型, "ffmpeg.dll", "FF_PlayGetCurrentFrame"
    .参数 播放器句柄, 整数型
    .参数 RGBA内存指针, 整数型
    .参数 行跨度, 整数型, 传址
    .参数 宽度, 整数型, 传址
    .参数 高度, 整数型, 传址

.DLL命令 FF_Play直接截图, 整数型, "ffmpeg.dll", "FF_PlayTakeScreenshot"
    .参数 播放器句柄, 整数型
    .参数 保存路径, 文本型
    .参数 图片格式, 整数型

.DLL命令 FF保存BMP图片, 整数型, "ffmpeg.dll", "FF_SaveFrameAsBMP"
    .参数 像素指针, 整数型
    .参数 宽, 整数型
    .参数 高, 整数型
    .参数 行跨度, 整数型
    .参数 文件路径, 文本型

.DLL命令 FF保存JPG图片, 整数型, "ffmpeg.dll", "FF_SaveFrameAsJPEG"
    .参数 像素指针, 整数型
    .参数 宽, 整数型
    .参数 高, 整数型
    .参数 行跨度, 整数型
    .参数 文件路径, 文本型
    .参数 画质0到100, 整数型

.DLL命令 FF保存PNG图片, 整数型, "ffmpeg.dll", "FF_SaveFrameAsPNG"
    .参数 像素指针, 整数型
    .参数 宽, 整数型
    .参数 高, 整数型
    .参数 行跨度, 整数型
    .参数 文件路径, 文本型

.DLL命令 FF_Play设置倍速, 整数型, "ffmpeg.dll", "FF_PlaySetPlaybackSpeed"
    .参数 播放器句柄, 整数型
    .参数 倍速值, 双精度小数型

.DLL命令 FF_Play获取倍速, 双精度小数型, "ffmpeg.dll", "FF_PlayGetPlaybackSpeed"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play设置音量, 整数型, "ffmpeg.dll", "FF_PlaySetVolume"
    .参数 播放器句柄, 整数型
    .参数 音量值, 整数型

.DLL命令 FF_Play获取音量, 整数型, "ffmpeg.dll", "FF_PlayGetVolume"
    .参数 播放器句柄, 整数型

.DLL命令 FF_Play读取元数据, 整数型, "ffmpeg.dll", "FF_PlayGetMetadata"
    .参数 播放器句柄, 整数型
    .参数 元数据结构体, FF_Metadata, 传址

.DLL命令 FF_Play获取编码参数, 整数型, "ffmpeg.dll", "ffmpeg.dll", "FF_PlayGetVideoEncodeParams"
    .参数 播放器句柄, 整数型
    .参数 编码参数结构体, FF_VideoEncodeParams, 传址

.DLL命令 FF_Play获取时间码, 整数型, "ffmpeg.dll", "FF_PlayGetTimecode"
    .参数 播放器句柄, 整数型
    .参数 文本缓冲, 字节集, 传址
    .参数 缓冲大小, 整数型

.DLL命令 FF_Play获取像素格式, 整数型, "ffmpeg.dll", "FF_PlayGetPixelFormat"
    .参数 播放器句柄, 整数型
    .参数 文本缓冲, 字节集, 传址
    .参数 缓冲大小, 整数型

.DLL命令 FF_Play获取解码器指针, 整数型, "ffmpeg.dll", "FF_PlayGetCodecContext"
    .参数 播放器句柄, 整数型
    .参数 视频解码器, 整数型, 传址
    .参数 音频解码器, 整数型, 传址

.DLL命令 FF_Play设置扩展参数, 整数型, "ffmpeg.dll", "FF_PlaySetExternalOptions"
    .参数 播放器句柄, 整数型
    .参数 参数名, 文本型
    .参数 参数值, 文本型

.DLL命令 FF_Play销毁播放器, , "ffmpeg.dll", "FF_PlayRelease"
    .参数 播放器句柄, 整数型


友情提醒:请选择可信度高的模块,勿用未知模块,防止小人在模块内加入木马程序。【发现问题模块请到站务投诉】。

签到天数: 12 天

 楼主| 发表于 2026-8-4 07:32:19 | 显示全部楼层   海南省保亭黎族苗族自治县
.版本 2

' ==================== ffmpegjiandan.dll 命令声明 (仅FFmpeg播放, 无ONVIF无YOLO) ====================
' 所有函数用 cdecl 调用约定, 函数名前加 @

.DLL命令 播放器全局初始化, 整数型, "ffmpegjiandan.dll", "@FFP_Init"
.DLL命令 播放器全局反初始化, , "ffmpegjiandan.dll", "@FFP_Deinit"
.DLL命令 设置播放器日志等级, , "ffmpegjiandan.dll", "@FFP_SetLogLevel"
    .参数 等级, 整数型
.DLL命令 打开媒体资源, 整数型, "ffmpegjiandan.dll", "@FFP_Open"
    .参数 地址, 文本型
    .参数 选项, 文本型
.DLL命令 获取媒体信息, 整数型, "ffmpegjiandan.dll", "@FFP_GetMediaInfo"
    .参数 播放器, 整数型
    .参数 信息, 字节集
.DLL命令 开始播放, 整数型, "ffmpegjiandan.dll", "@FFP_Play"
    .参数 播放器, 整数型
    .参数 窗口句柄, 整数型
    .参数 回调, 整数型
    .参数 用户数据, 整数型
.DLL命令 暂停播放, 整数型, "ffmpegjiandan.dll", "@FFP_Pause"
    .参数 播放器, 整数型
.DLL命令 恢复播放, 整数型, "ffmpegjiandan.dll", "@FFP_Resume"
    .参数 播放器, 整数型
.DLL命令 停止播放, 整数型, "ffmpegjiandan.dll", "@FFP_Stop"
    .参数 播放器, 整数型
.DLL命令 关闭播放器实例, , "ffmpegjiandan.dll", "@FFP_Close"
    .参数 播放器, 整数型
.DLL命令 画面绘制, 整数型, "ffmpegjiandan.dll", "@FFP_Paint"
    .参数 播放器, 整数型
    .参数 设备场景, 整数型
    .参数 左, 整数型
    .参数 顶, 整数型
    .参数 宽, 整数型
    .参数 高, 整数型
.DLL命令 设置音量, 整数型, "ffmpegjiandan.dll", "@FFP_SetVolume"
    .参数 播放器, 整数型
    .参数 音量, 整数型
.DLL命令 获取播放状态, 整数型, "ffmpegjiandan.dll", "@FFP_GetState"
    .参数 播放器, 整数型
.DLL命令 设置静音, 整数型, "ffmpegjiandan.dll", "@FFP_SetMute"
    .参数 播放器, 整数型
    .参数 静音, 整数型
.DLL命令 视频定位跳转, 整数型, "ffmpegjiandan.dll", "@FFP_Seek"
    .参数 播放器, 整数型
    .参数 秒数, 双精度小数型
.DLL命令 获取当前播放位置, 双精度小数型, "ffmpegjiandan.dll", "@FFP_GetPosition"
    .参数 播放器, 整数型
.DLL命令 获取媒体总时长, 双精度小数型, "ffmpegjiandan.dll", "@FFP_GetDuration"
    .参数 播放器, 整数型
.DLL命令 保存截图, 整数型, "ffmpegjiandan.dll", "@FFP_Snapshot"
    .参数 播放器, 整数型
    .参数 路径, 文本型
.DLL命令 开始录像, 整数型, "ffmpegjiandan.dll", "@FFP_StartRecord"
    .参数 播放器, 整数型
    .参数 路径, 文本型
.DLL命令 停止录像, 整数型, "ffmpegjiandan.dll", "@FFP_StopRecord"
    .参数 播放器, 整数型
.DLL命令 播放器_取帧, 整数型, "ffmpegjiandan.dll", "@FFP_GetFrame"
    .参数 播放器, 整数型
    .参数 帧, 字节集
.DLL命令 播放器_释放帧, , "ffmpegjiandan.dll", "@FFP_FreeFrame"
    .参数 帧, 字节集
这次重新封装了5.5开源的ffmpeg 之前封装的是4.4的容易内存泄漏  可以说目前比较好用的个人感觉还是5.5  最新版本的7和8的版本封装 可能是我技术不到家总之没封装出来  只有这个5.5版本 例子还是之前的离职 不过要改DLL的命令 就是上面的命令  
这里是下载链接通过网盘分享的文件:ffmpeg
链接: https://pan.baidu.com/s/1SOCiRPzJA9ZKEWecI_Zwhg?pwd=e8jy 提取码: e8jy  自己下载因为附件打包出来太大了

1.png
2.png
3.png
ScreenShot_2026-08-04_071901_122.png
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 4 天

发表于 2026-8-3 17:25:31 | 显示全部楼层   湖北省十堰市
谢谢分享............
回复 支持 反对

使用道具 举报

结帖率:88% (81/92)

签到天数: 6 天

发表于 2026-8-3 17:13:46 | 显示全部楼层   广东省湛江市
学习了,很有用。
回复 支持 反对

使用道具 举报

结帖率:88% (81/92)

签到天数: 6 天

发表于 2026-8-3 17:01:18 | 显示全部楼层   广东省湛江市
哇,太棒了!感谢!
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2026-7-31 15:59:51 | 显示全部楼层   广东省惠州市
谢谢大佬,很好很实用的教程。
回复 支持 反对

使用道具 举报

发表于 2026-7-29 16:05:04 | 显示全部楼层   四川省乐山市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)

签到天数: 1 天

发表于 2026-7-28 16:33:09 | 显示全部楼层   山西省太原市
非常不错,强烈推荐!
回复 支持 反对

使用道具 举报

签到天数: 12 天

 楼主| 发表于 2026-7-26 21:46:07 | 显示全部楼层   海南省保亭黎族苗族自治县
通过网盘分享的文件:ffmpeg重要.zip
链接: https://pan.baidu.com/s/12d_De7qR8YuC1EykPS0gkA?pwd=t5mk 提取码: t5mk
之前的链接我 删掉了 后面这链接是再次封装 带例子..
回复 支持 反对

使用道具 举报

签到天数: 12 天

 楼主| 发表于 2026-7-26 21:44:39 | 显示全部楼层   海南省保亭黎族苗族自治县
之前放的只是DLL  现在发的是带有例子 上链接通过网盘分享的文件:ffmpeg重要.zip 链接: https://pan.baidu.com/s/12d_De7qR8YuC1EykPS0gkA?pwd=t5mk 提取码: t5mk
回复 支持 反对

使用道具 举报

结帖率:97% (656/675)

签到天数: 9 天

发表于 2026-7-26 14:20:37 | 显示全部楼层   河北省*

把基本去掉 在完善一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表