精易论坛

标题: 解析FLV获取网络视频时长 [打印本页]

作者: TBit    时间: 2022-10-13 11:34
标题: 解析FLV获取网络视频时长
本帖最后由 TBit 于 2022-10-13 11:53 编辑

1.在问答区看到一篇帖子  获取flv网络视频时长


问答贴: https://125.confly.eu.org/thread-14749691-1-1.html


论坛中只有MP4的时长获取


也有通过读取前几百个字节 再使用ffmpeg来获取时长  虽然也能达到目的  但还需要带个ffmpeg 就很不方便


遂通过解析flv协yi 了解组成部分后成功获取时长 下面分享一下过程


2.flv格式解析


网上有很多关于flv格式解析的博客 可自行翻阅  下面列出本贴需要的部分


onMetaData


onMetaData中包含了音视频相关的元数据,封装在Script Data Tag中,它包含了两个AMF。


第一个AMF:



第二个AMF:



更多onMetaData字段的定义:



































































字段 字段类型 字段含义
duration DOUBLE 文件的时长
width DOUBLE 视频宽度(px)
height DOUBLE 视频高度(px)
videodatarate DOUBLE 视频比特率(kb/s)
framerate DOUBLE 视频帧率(帧/s)
videocodecid DOUBLE 视频编解码器ID(参考Video Tag)
audiosamplerate DOUBLE 音频采样率
audiosamplesize DOUBLE 音频采样精度(参考Audio Tag)
stereo BOOL 是否立体声
audiocodecid DOUBLE 音频编解码器ID(参考Audio Tag)
filesize DOUBLE 文件总得大小(字节)


00 08 64 75 72 61 74 69 6F 6E 00 40 A7 5D 1E B8 51 EB 85


08表示8个字节  


64 75 72 61 74 69 6F 6E 表示duration文字


上面选中部分则就是具体的时长   


由于 duration 是双浮点数据类型


所以要将这个十六进制转成双浮点即可获取正确的时长


十六进制转双浮点 参考帖子: https://125.confly.eu.org/forum.php?mod=redirect&goto=findpost&ptid=14699389&pid=22022452



解析部分参考博客: https://www.cnblogs.com/chyingp/p/flv-getting-started.html



3.易语言代码实现



源码很简单  大佬勿喷   调用了精易模块  自行引用即可   希望本贴能帮助到你们




[hide=d365] 获取网络flv时长.e (142.98 KB, 下载次数: 60) [/hide]

作者: chinapk    时间: 2022-10-13 12:07
试试看把
作者: 网络注册网员    时间: 2022-10-13 12:13
支持楼主
作者: jiucai    时间: 2022-10-13 12:48
学习一下
作者: 深爱者    时间: 2022-10-13 12:48
支持开源!感谢分享,论坛有你更精彩~
作者: xiazai520    时间: 2022-10-13 14:03
m3u8时长能获取网络视频时长吗?
作者: gaoqing    时间: 2022-10-13 14:06
谢谢分享
作者: 柠檬冰    时间: 2022-10-13 15:20
感谢解析FLV获取网络视频时长 [修改]

作者: 番茄吧    时间: 2022-10-13 15:24
xiazai520 发表于 2022-10-13 14:03
m3u8时长能获取网络视频时长吗?

m3u8 里面都是明文啊,里面有时长

#EXTINF:   把所有的这个标签加起来就是总时长了
作者: huarey    时间: 2022-10-13 16:03
ASSSSSSSSSSSSSSSSSSSS
作者: cfvgbhnj    时间: 2022-10-13 17:10
        感谢分享,很给力!~
作者: 2446789312    时间: 2022-10-13 19:36

作者: 风中的玫瑰    时间: 2022-10-13 19:38
谢谢分享,收藏
作者: hehehero    时间: 2022-10-13 20:30
        支持开源~!感谢分享
作者: 猫携    时间: 2022-10-13 21:29

        支持开源~!感谢分享

作者: 2622113    时间: 2022-10-13 21:39
顶楼主啦..希望楼主多发精品好帖啦.....
作者: 59hdvj    时间: 2022-10-13 21:56
支持一下
作者: 风中冰雨    时间: 2022-10-13 22:14
看看..........
作者: 深圳梦    时间: 2022-10-13 22:36
支持开源~!感谢分享
作者: lzgking    时间: 2022-10-13 23:43
支持开源~!感谢分享
作者: 794229345    时间: 2022-10-13 23:56
膜拜大佬!大佬牛B!
作者: jing2020yi    时间: 2022-10-14 01:22
谢谢分享~
作者: 凌哥    时间: 2022-10-14 03:23
少有的质量贴
作者: yxl2008    时间: 2022-10-14 04:34
感谢分享,下载学习!!!
作者: qwee1222    时间: 2022-10-14 04:46
支持开源~!感谢分享!!
作者: xiazai520    时间: 2022-10-14 09:12
番茄吧 发表于 2022-10-13 15:24
m3u8 里面都是明文啊,里面有时长

#EXTINF:   把所有的这个标签加起来就是总时长了 ...

这也太慢了  有别方法吗
作者: sinewtec    时间: 2022-10-14 09:21
开源精神必须支持~
作者: SoloCat    时间: 2022-10-16 08:16

作者: zhyl8888    时间: 2022-10-17 03:37
☆.。.:*(嘿´Д`嘿).。.:*☆
作者: 汉族    时间: 2022-10-18 23:50
支持     1
作者: wujinghe    时间: 2022-10-19 14:41
支持大佬
作者: ZMF666    时间: 2022-11-25 19:41
国际偶尔几个hi计划
作者: fhqdskfsym    时间: 2023-4-13 14:50
能解析的方法太多了,主要是速度怎么样。




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4