首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算flv视频文件长度?使用纯PHP

计算FLV视频文件长度可以使用纯PHP编写的代码来实现。FLV是一种常见的视频文件格式,它包含了视频和音频数据以及元数据信息。

要计算FLV视频文件的长度,可以通过解析FLV文件的元数据信息来获取视频的时长。FLV文件的元数据信息通常存储在文件的开头部分,可以通过读取文件的字节数据来获取。

以下是一个示例代码,用于计算FLV视频文件的长度:

代码语言:php
复制
<?php
function getFLVVideoDuration($file_path) {
    $file = fopen($file_path, "rb");
    if (!$file) {
        return false;
    }

    // 读取FLV文件头部
    $header = fread($file, 9);
    if (!$header || substr($header, 0, 3) !== "FLV") {
        fclose($file);
        return false;
    }

    // 读取第一个tag的数据
    fseek($file, 9);
    $tag_header = fread($file, 11);
    if (!$tag_header) {
        fclose($file);
        return false;
    }

    // 解析tag的类型和数据大小
    $tag_type = ord($tag_header[0]);
    $data_size = unpack("N", substr($tag_header, 1, 3))[1];

    // 读取tag的时间戳
    fseek($file, 4, SEEK_CUR);
    $timestamp = unpack("N", fread($file, 4))[1];

    // 计算视频时长
    $duration = 0;
    while (!feof($file)) {
        if ($tag_type === 9 || $tag_type === 8) {
            $duration += $timestamp;
        }

        fseek($file, $data_size + 4, SEEK_CUR);
        $tag_header = fread($file, 11);
        if (!$tag_header) {
            break;
        }

        $tag_type = ord($tag_header[0]);
        $data_size = unpack("N", substr($tag_header, 1, 3))[1];
        $timestamp = unpack("N", fread($file, 4))[1];
    }

    fclose($file);

    return $duration / 1000; // 转换为秒
}

// 使用示例
$file_path = "path/to/your/flv/video.flv";
$duration = getFLVVideoDuration($file_path);
if ($duration !== false) {
    echo "FLV视频文件的长度为:" . $duration . "秒";
} else {
    echo "无法获取FLV视频文件的长度";
}
?>

上述代码通过读取FLV文件的头部和每个tag的时间戳来计算视频的时长。需要注意的是,该代码仅适用于普通的FLV视频文件,对于包含多个音视频流或特殊编码的FLV文件可能无法准确计算时长。

对于FLV视频文件长度的计算,腾讯云并没有提供特定的产品或服务。腾讯云提供了丰富的云计算产品和解决方案,可用于存储、处理和分发视频文件,例如腾讯云点播(https://cloud.tencent.com/product/vod)和腾讯云云直播(https://cloud.tencent.com/product/lvb)等。这些产品可以帮助开发者更好地管理和使用视频资源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【FFmpeg】ffmpeg 命令行参数 ① ( ffpeg 命令 -i 参数 指定 输入文件 输入流 | ffpeg 命令 -f 参数 指定 输出格式 | 指定 时间 相关参数 )

执行 ffmpeg -i input.mp4 -f flv output.flv 命令 , 即可将 mp4 格式的文件 , 转为 flv 格式的文件 ; 执行 ffplay output.flv 命令..., 播放 转换后的 flv 视频文件 ; 输入文件的 信息 : 视频是 AVC 格式的 , 音频是 AAC 格式的 ; 输出文件 信息 : 输出文件时 Flash Video 格式的 ; 四、ffpeg...从 第 30 秒处开始裁剪 到 结尾位置 , 转换前的视频信息 : 转换后的视频信息 : 2、设置输出文件的视频长度 -t 参数 ffmpeg 命令 中 使用 -t duration 参数 ,...可以 设置 输出 文件的 视频长度 , duration 指的是播放时间 , 单位是 秒 ; 从 输入文件 中 裁剪出特定长度的音频或视频片段时 , 可以使用 -t 参数 , -t 参数后面跟的时间值可以是秒...-ss 设置 输入文件的起始时间 使用 -t 参数 设置 播放持续时间 注意 : -t 参数指定的时间长度是从 -ss 参数指定的开始时间点计算的 ; 如果没有指定 -ss 参数 , 那么 -t 参数将从视频的开头开始计算播放长度

2.8K10

《FFmpeg从入门到精通》读书笔记(二)

=0,代表这个Box是文件的最后一个Box; size=1,说明Box的长度需要更多的位来描述,在后面会定义一个64位的largesize用来描述Box的长度; type=uuid,说明这个Box中的数据是用户自定义扩展类型...Data为Box的实际数据,可以是数据,也可以是更多的子Box; 当一个Box中Data是一系列的子Box时。...Note:音频时长可通过Duration / TimeScale的方式来计算。...ss与t参数进行切片 使用ss可以进行视频文件的seek定位,ss所传递的参数为时间值,t所传递的参数也为时间值 1.使用ss指定剪切开头部分 例如:从视频的第10秒开始截取 ffmpeg -ss 10...-i input.mp4 -c copy output.ts 2.使用t指定视频总长度 例如:截取前10秒的数据 ffmpeg -i input.mp4 -c copy -t 10 -copyts output.mp4

3K30
  • HTTP-FLV详解及分析

    1、市场上使用 http-flv 的商家 优酷的 pc 网页直播,斗鱼、 熊猫 tv、 虎牙 pc 网页上也使用了 http-flv 2、http-flv、rtmp 和 hls 直播的优缺点 三者的延迟性...3、http-flv 技术实现 HTTP 协议中有个约定:content-length 字段,http 的 body 部分的长度。...-y rtmp://127.0.0.1:1935/live/test1 这个命令使用 FFmpeg 工具来将输入视频文件 SampleVideo_1280x720_20mb.mp4 转换为 FLV 格式并通过...文件,可以看到网页播放成功 三、FLV 格式简介 1、简介 FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了...DataOffset 4 个字节:表示 FLV 的 header 长度

    1.6K41

    视频加密技术大全,拿走,不谢!

    1.jpg 点量FLV视频加密系统还同时可以提供Android​‌‌、IOS下的加密视频播放方案(可提供播放器引擎,能在授权后播放点量FLV系统加密过的视频),是目前行业内为数不多的,可以支持移动端进行加密视频播放的解决方案...目前点量FLV加密播放系统根据用户需求不同,有多个不同版本提供,这里分别介绍下: 一)在线播放模式: 特点是: 1)不需要安装任何软件,只需要机器支持flash播放即可。简洁易用。...4)视频文件在服务器上、网络传输过程中、浏览器缓存中,均为加密文件,杜绝加密后文件有短板漏洞,即使被下载到,也无法进行播放。...该模式的示例地址为: http://www.dolit.cn/flvexe (电信线路) http://demo.flvurl.cn/flvexe(网通线路) 三)本地EXE模式: 特点是: 1)视频文件在本地...下载后可以先对一个flv视频文件进行加密,然后通过我们的播放器播放(其它软件无法播放)。 四)移动H5版功能列表: 1)手机浏览器下(包括QQ、微信)打开即可播放。

    3.9K30

    国标GB28181视频平台LiteCVR可支持的视频流播放协议汇总

    图片众所周知,国标GB28181视频平台LiteCVR平支持多种视频流媒体协议输出,如:HLS、HTTP-FLV、WebSocket-FLV、WebRTC、RTSP、RTMP。...图片1)HLSHLS协议的文件由两部分组成:多个只有几秒长度的.ts切片视频文件;记录这些视频文件地址的.m3u8索引文件,这些静态视频文件是直接写入磁盘的。...5)HTTP-FLVHTTP-FLV地址以http://开头,基于http协议,功能和工作原理与RTMP相似。HTTP-FLV一般作为拉流,延迟较低,适配播放场景更灵活。...6)WebSocket-FLV基于WebSocket传输FLV,依赖浏览器支持播放FLV。...WebSocket-FLV和HTTP-FLV类似,区别就是HTTP-FLV基于HTTP ,只能单向传输数据,而WS-FLV基于WS可以双向传输数据。

    57720

    TSINGSEE青犀视频汇聚平台EasyCVR多种视频流播放协议介绍

    视频监控汇聚平台EasyCVR平支持多种视频流媒体协议输出,如:HLS、HTTP-FLV、WebSocket-FLV、WebRTC、RTSP、RTMP。...这几种播放协议介绍如下:1)HLSHLS协议的文件由两部分组成:多个只有几秒长度的.ts切片视频文件;记录这些视频文件地址的.m3u8索引文件,这些静态视频文件是直接写入磁盘的。...5)HTTP-FLVHTTP-FLV地址以http://开头,基于http协议,功能和工作原理与RTMP相似。HTTP-FLV一般作为拉流,延迟较低,适配播放场景更灵活。...6)WebSocket-FLV基于WebSocket传输FLV,依赖浏览器支持播放FLV。...WebSocket-FLV和HTTP-FLV类似,区别就是HTTP-FLV基于HTTP ,只能单向传输数据,而WS-FLV基于WS可以双向传输数据。

    29220

    音视频开发常用工具

    Video 主要是视频编码的相关信息,包括:编码器、Profile & Level、是否使用算术熵编码、比特率、视频文件大小、视频尺寸、帧率模式、帧率、色彩空间、扫描类型(逐行/隔行)、编码设置等...码流类型、数据包数等内容了 2、下载 链接:https://pan.baidu.com/s/1hMGBTPB58xYTmYysPwlrCA 提取码:ykhf 3、码流 码流(Data Rate)是指视频文件在单位时间内使用的数据流量...FFmpeg 是一套可以用来记录、 转换数字音频、 视频, 并能将其转化为流的开源计算机程序。它提供了录制、 转换以及流化音视频的完整解决方案。...剪切一段媒体文件 提取一个视频文件中的音频文件 从 MP4 文件中抽取视频流导出为裸的 H264 数据 视频静音, 即只保留视频 -an,-vn 使用 AAC 音频数据和 H264 视频生成 MP4...的文件 ---- 测试视频素材下载 各种格式,MP4, flv, mkv, 3gp 视频下载地址: https://www.sample-videos.com/index.php#sample-mp4

    94940

    ffmpeg常用库、术语、API、数据结构总结

    关于初始化和注册相关的函数 (二)封装格式相关函数 (三)解码相关函数 五、ffmpeg常用数据结构简介 一、常用音视频术语和概念 容器/文件(Conainer/File):指特定格式的多媒体文件,比如mp4、flv...二、常用概念 音视频领域-复用器和解复用器 复用器:把多路原始流按一定的规则组成成一个新的音视频文件(例如:把一个视频流、一个纯音频流和一个字幕流组合成一个mp4文件); 解复用器:把一个新的音视频文件按一定的规则拆分成多路原始流...(例如:把一个mp4文件,拆分成视频流、纯音频流和字幕流)。...如果使用该函数进行关闭的话,就可以不使用avformat_free_context()进行释放; avformat_open_input():打开输入视频文件; avformat_find_stream_info...():获取视频文件信息; av_read_frame():读取音视频包; avformat_seek_file():根据时间戳定位文件的位置;例如我们托方播放器的进度条进行快近和快退时,就可以使用此函数进行定位播放

    1K30

    音视频八股文(3)--ffmpeg常见命令(2)

    www.ffmpeg.org/ffmpeg-filters.html 09-ffmpeg命令参数说明 主要参数 ● -i 设定输入流 ● -f 设定输出格式(format) ● -ss 开始时间 ● -t 时间长度...由于重新编码视频流需要消耗大量的计算资源和时间,因此在使用 -r 参数时应该谨慎考虑是否有必要重新编码视频流。...由于没有重新编码音频流,因此无需消耗大量计算资源和时间,同时也避免了音频质量的损失。...需要注意的是,重新编码视频数据可能会导致视频质量的损失,同时也会消耗大量计算资源和时间,因此应该根据具体需求谨慎调整。...需要注意的是,重新编码音频数据可能会导致音频质量的损失,同时也会消耗大量计算资源和时间,因此应该根据具体需求谨慎调整。

    1.1K121

    FFmpeg优化 苏宁PP体育视频剪切效率提升技巧

    这里就是我们通常所看到的.ts/.mp4/.flv/.mkv等视频文件。这些文件里封装着M路编码的视频流和N路编码的音频流。当然也可以有其它的数据流,如字幕流,附加信息流等。...首先,我们没用使用FFmpeg套件来做核心切割功能服务。如上所述,业界通常利用FFmpeg套件切割视频文件时,是在视频分层图的第三层编码数据层对视频文件按”帧“级数据作拷贝处理。...我们对生产环境及直播链路进行梳理后发现,视频的数据封装格式基本只有MP4/FLV/TS三种。而此三种封装格式里,除MP4封装稍复杂外,FLV/TS的封装相对容易分析处理。...切割起始点与终止点的计算,以及拷贝数据拼合成新的视频,是这里的关键。...另外,在实际计算起止切割点时,往往会出现当前切割点的时间上并不是关键帧,导致部分数据无法被正确解码的问题。

    76130

    音视频八股文(3)--ffmpeg常见命令(2)

    www.ffmpeg.org/ffmpeg-filters.html 09-ffmpeg命令参数说明 主要参数 ● -i 设定输入流 ● -f 设定输出格式(format) ● -ss 开始时间 ● -t 时间长度...由于重新编码视频流需要消耗大量的计算资源和时间,因此在使用 `-r` 参数时应该谨慎考虑是否有必要重新编码视频流。...由于没有重新编码音频流,因此无需消耗大量计算资源和时间,同时也避免了音频质量的损失。...需要注意的是,重新编码视频数据可能会导致视频质量的损失,同时也会消耗大量计算资源和时间,因此应该根据具体需求谨慎调整。...需要注意的是,重新编码音频数据可能会导致音频质量的损失,同时也会消耗大量计算资源和时间,因此应该根据具体需求谨慎调整。

    2K10

    音视频八股文(6)-- ffmpeg大体介绍和内存模型

    播放器框架图片常用音视频术语• 容器/文件(Conainer/File):即特定格式的多媒体文件,比如mp4、flv、mkv等。...• 媒体流(Stream):表示时间轴上的一段连续数据,如一段声音数据、一段视频数据或一段字幕数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码器(有些码流音频他是PCM)。...◼ avformat_open_input();打开输入视频文件◼ avformat_find_stream_info():获取音视频文件信息◼ av_read_frame(); 读取音视频包◼ avformat_seek_file...AVInputFormat demuxer每种封装格式(例如FLV, MKV, MP4, AVI)对应一个该结构体。...• nb_streams:输入媒体的AVStream 个数• streams:输入媒体的AVStream []数组• duration:输入媒体的时长(以微秒为单位),计算方式可以参考av_dump_format

    47400

    面试官常问的音视频技术点!

    更重要的是,对于AnnexB的分隔符不代表NALU长度。 AVCC格式:这种格式的分隔符能表示NALU长度,并且不定长。这种方式也是防止竞争字节,这种格式的文件多用于MP4文件。...一般我们有两种方式解决: 推流端缩短GOP长度:在推流端设置GOPSIZE,一般来说GOP的长度会影响播放端的黑屏时间。...GOP长度越长,找到I帧的时间就会变长,若解码端长时间没找到I帧,播放器就会处于长时间黑屏。若出现黑屏的时间过长,则可以考虑缩短GOPSIZE的长度。...4、FLV格式为何常用在直播流媒体协议: FLV的特点是封装后的音视频文件大小相对比较小、封装规范相对比较简单,所以FLV格式非常适用于网络传输。尤其在RTMP网络流媒体传输中,FLV占据着统治地位。...一般FLV格式如下图: FLV封装格式一般由FLV Header和FLV Body组成。这里面FLV Body是由一对(Previous Tag Size字段 + Tag)组成。

    80030

    【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | 文件头 Header 分析 | 标签 Tag 分析 | 视频标签 Tag 数据分析 )

    文章目录 一、 RTMP 格式解析 二、 文件头 Header 分析 三、 标签 Tag 分析 四、 视频标签 Tag 数据分析 一、 RTMP 格式解析 ---- RTMP 视频数据包格式与 flv...视频格式类似 , 使用二进制分析工具分析 flv 视频文件 , 相关工具都在博客资源中 ; 分析 flv 文件格式 : ① flv 视频文件构成 : flv 视频由一个文件头 Header 与若干标签...Tag 组成 ; ② 使用二进制查看器 , 打开 flv 视频文件 , 如下图所示 : ③ 使用 flvAnalyser 工具打开 flv 视频文件 : 二、 文件头 Header 分析 ----...文件头 Header 分析 : ① flv 视频文件文件头 : 46 4C 56 ( 16 进制格式 ) , 这是 FLV 字母的 ASCII 码 ; 只要是 flv 格式的文件 , 前三个字节必定是这三个值...; ② 文件版本 : 第 4 个字节时 FLV 格式的版本 , 这里是 01 ; ( 参考上图 ) 三、 标签 Tag 分析 ---- flv 标签数据结构 : ① 标签类型 ( tag type

    1.3K10

    WPF 使用 ManipulationProcessor2D 数学计算方式提供多点漫游元素功能

    在 WPF 中,除了使用 Manipulation 系列在进行触摸的多点进行漫游外,还可以使用比较少有人了解的 WPF 提供的 ManipulationProcessor2D 数学库来进行多点漫游元素功能...这是放在 System.Windows.Input.Manipulations 空间内,一个单独的 WPF 程序集,使用这个程序集可以使用和 WPF 交互无关的数学计算方式提供多点漫游元素功能。...只需要给 ManipulationProcessor2D 提供多点的 Id 和时间和坐标信息,就可以用上 Manipulation 数学计算,拿到平移和缩放和旋转等信息,以及累计量和差量和速度,可以使用这些信息做到元素的漫游...,可以无视具体的交互,实现从传入的多个点拿到平移和缩放和旋转等信息,以及通过多次传入的时间值计算出累计量和差量和速度 本文使用的 System.Windows.Input.Manipulations 的...但缺点是需要自己计算第一次的状态 Velocities 速度,速度也称为惯性 以下代码将使用 Delta 让矩形漫游 private void ManipulationProcessor2D_Delta

    79220

    (强烈推荐)移动端音视频从零到上手(下)

    https://juejin.im/post/5d29d884f265da1b971aa220 4.1 定义 封装就是把编码器生成的音频,视频同步以生成我们肉眼可见,耳朵可听并且看到的与听到的是同步的视频文件...FLV流简介 Overview FLV封装格式分析器。FLV全称是Flash Video,是互联网上使用极为广泛的视频封装格式。像Youtube,优酷这类视频网站,都使用FLV封装视频。...FLV(Flash Video)是Adobe公司设计开发的一种流行的流媒体格式,由于其视频文件体积轻巧、封装简单等特点,使其很适合在互联网上进行应用。...此外,FLV可以使用Flash Player进行播放,而Flash Player插件已经安装在全世界绝大部分浏览器上,这使得通过网页播放FLV视频十分容易。...目前主流的视频网站如优酷网,土豆网,乐视网等网站无一例外地使用FLV格式。FLV封装格式的文件后缀通常为“.flv”。

    1.1K20
    领券