首页 > 其他分享 >合并 手机百度网盘 下载的压缩视频

合并 手机百度网盘 下载的压缩视频

时间:2025-01-19 09:25:57浏览次数:1  
标签:视频 百度网 m3u8 压缩 ts EXT file basename

 

百度网盘存储的视频,在用手机百度网盘下载时,会下载到压缩后的视频,该压缩视频的目录中,有一个 .m3u8 、一个 .m3u8bn 、一个 config 和几个 ts_n 文件

其中  .m3u8 加载下载到本地的 ts_n 切片文件, .m3u8bn 则加载网络切片文件

  .m3u8 文件内容说明,把视频切片成多个 10秒 的视频,又把切片后的视频合并到 ts_n 文件中

  .m3u8 文件中有一参数 EXT-X-BYTERANGE:<n>[@o] ,这个就是从 ts_n 文件中 读取 被切片后的 小视频规则

用 PHP 代码从 ts_n 文件中,把 这些 切片后的小视频合并成一个视频,本机需要安装 php 和 ffmpeg ,并且设置环境变量

<?php
# 文件名 bdm3u8.php # 用CMD命令查找 .m3u8 文件 dir /s/q/b *.m3u8 > m3u8.txt # # 下面$completedir 可修改 $completedir = '/lsd/c1080p'; # 存放合并后的文件目录,末尾不加 / if(!file_exists($completedir)) mkdir($completedir); set_time_limit(0); $cli = preg_match("/cli/i", php_sapi_name()); # 清屏 if($cli){ $clear = PHP_OS === 'WINNT' ? 'cls':'clear'; if(function_exists('popen')) pclose(popen($clear, 'w')); else echo "\e[H\e[J"; } # 传参 if(!empty($argv[1])){ $m3u8 = $argv[1]; }else{ fwrite(STDOUT, "\n\n 填写m3u8文件路径: "); $m3u8 = trim(fgets(STDIN)); } if(empty(trim($m3u8))) die("\n \033[31m 输入为空,别忘了两端加\"\033[0m\n\n"); else print_r("\n 输入的是\033[31m $m3u8\033[0m\n\n"); $m3u8 = str_replace('\\', '/', trim($m3u8)); $m3u8 = '/' . explode('/', $m3u8, 2)[1]; $m3u8dir = dirname($m3u8); $save10sdir = $m3u8dir . '/save10s'; if(!file_exists($save10sdir)) mkdir($save10sdir); $listfn = $save10sdir . '/list.txt'; if(file_exists($listfn)) unlink($listfn); # 文件路径中包含 . 符号,不用 basename($url) 和 pathinfo($url)['filename']; $dotcount = substr_count($m3u8, '.'); $basename = explode('.', $m3u8)[$dotcount -1] . '.mp4'; # 添加一些命名规则 $basename = str_replace(' ', '', $basename); // echo $basename; $str = file_get_contents($m3u8); $array = explode('#EXT-X-BYTERANGE:', $str); foreach($array as $key => $value){ if($key === 0)continue; $array2 = explode("\n", $value); // list($length, $offset) = explode("@", $array2[0]); $nv_array = explode("@", trim($array2[0])); $length = $nv_array[0]; # 截取片段大小(字节) $offset = $nv_array[1]; # 截取起始位置(字节) $ts_path = trim($array2[1]); $ts_dir = dirname($ts_path); $ts_path = str_replace($ts_dir, $m3u8dir, $ts_path); $range = file_get_contents($ts_path, false, null, $offset, $length); // $range = substr($range, $offset, $length); file_put_contents($save10sdir . '/' . $key . '.ts', $range); echo $key . ' OK '; file_put_contents($listfn, "file '" . $save10sdir . '/' . $key . ".ts'\r\n", FILE_APPEND); } $bin = 'ffmpeg -f concat -safe 0 -i "' . $listfn . '" -c copy "' . $completedir . '/' . $basename . '"'; echo "\n\n" . $bin . "\n\n"; exec($bin); # EXT-X-BYTERANGE:表示媒体段是一个媒体URI资源中的一段,只对其后的media URI有效,格式如下: # EXT-X-BYTERANGE:<n>[@o]: # 表示区间大小(十进制整型,单位:字节)。 # 可选参数o表示在URI中的offset,即资源开头的字节位置,(十进制整型,单位:字节)。 # 如果o未指定,则截取起始位置从上一个该标签截取完成的下一个字节(即上一个n+o+1)开始截取。 # 如果没有指定该标签,则表明的切分范围为整个 URI 资源片段。 # 注:使用 EXT-X-BYTERANGE 标签要求兼容版本号 EXT-X-VERSION 大于等于 4

 

 

中 CMD 中 运行 以下命令

php bdm3u8.php /path/to/videos.m3u8

 

标签:视频,百度网,m3u8,压缩,ts,EXT,file,basename
From: https://www.cnblogs.com/yisuo/p/18679198

相关文章

  • 最新AIGC创作平台功能介绍+使用教程+支持GPT对话、AI绘画、AI视频、AI PPT等大模型
    在当今快速发展的数字时代,人工智能(AI)已成为推动创新和提升工作效率的重要工具。「银河易创」作为一站式AIGC创作平台,旨在帮助用户在工作和学习中显著提高效率。无论是进行AI对话、AI绘画、AI视频制作、AI音乐创作,还是快速制作PPT,都能满足您的需求,助您轻松实现创意与灵感的碰撞......
  • CelebV-Text——从文本生成人脸视频的数据集
    CelebV-Text——从文本生成人脸视频的数据集概述近年来,生成模型在根据文本生成和编辑视频方面受到了广泛关注。然而,由于缺乏合适的数据集,生成人脸视频领域仍然是一个挑战。特别是,生成的视频帧质量较低,与输入文本的相关性较弱。在本文中,我们通过开发CelebV-Text来解决这些......
  • 【2017-2025】Adobe Premiere Pro(简称PR)专业视频编辑软件下载
    AdobePremierePro软件简介AdobePremierePro(简称PR)是由Adobe公司开发的一款专业视频编辑软件,广泛应用于电影制作、电视播出和网络视频的制作。该软件以其强大的编辑功能和灵活的工作流程,在业界中享有盛誉。无论是专业影视制作人还是业余爱好者,PremierePro都能满足他们的......
  • AIGC视频生成模型:Runway的Gen系列模型
    大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Runway开发的视频生成模型Gen系列,包括Gen-1、Gen-2和Gen3Alpha等,这些模型每次发布都震惊AI圈,荣获多个视频生成的“首个”称号。......
  • 手把手教你完成YOLOv11 PySide6目标检测界面搭建,使用Qt6设计YOLOv11检测系统,实现图片
    摘要目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。YOLO系列模型由于其高效的检测速度和较高的准确率,成为目标检测任务的首选算法之一。本项目结合YOLOv11与PySide6,构建了一个图形化界面,便于用户进行目标检测的操作和展示,实现对图片......
  • 多监控m3u8视频流,怎么获取每个监控的封面图(纯前端)
    文章目录1.背景2.问题分析3.解决方案3.1解决思路3.2解决过程3.2.1封装播放组件3.2.2隐形的视频div3.2.3截取封面图3.3结束1.背景有这样一个需求:给你一个监控列表,每页展示多个监控(至少12个,m3u8格式);且展示每个监控的第一帧画面的封面图,但是后端没给你返回封面图......
  • 揭秘那些可以下载高清动物视频素材的网站,如果你也在寻找,赶紧进来看看吧~
    哪里下载高清无水印的动物视频素材?做动物解说哪里找素材?今天就来给大家揭秘那些可以下载高清动物视频素材的网站,如果你也在苦苦找寻找,赶紧进来看看吧~1、稻虎网稻虎网提供了百万优质的动物视频素材,不仅涵盖了从萌宠到野生动物的各个种类,此外,动物解说类视频、动物捕食视频、动......
  • (14-4)基于Latent Diffusion Transformer的文生视频系统:视频数据的预处理和增强
    6.4.5 视频数据的预处理和增强文件video_transforms.py主要实现了视频数据的预处理和增强功能,包括对视频帧的随机裁剪、中心裁剪、尺度调整、归一化、随机水平翻转等操作。通过自定义的多种预处理类,例如RandomCropVideo、CenterCropVideo和NormalizeVideo,可以对输入的视......
  • 使用HandBrake烧录字幕到视频里
    原文链接:https://tingxuanr.github.io/note/使用handbrake烧录字幕到视频里/摘要:使用HandBrake这个软件,将外挂字幕烧录到视频里面,顺便还能缩小视频体积,转换格式。觉得手机拍摄的视频太占空间也可以使用这个软件在保证质量的情况下极大的缩小文件体积。附带利用vscode转换文本编码......
  • 视频为什么会糊?蓝光、码率、分辨率
    原文链接:https://tingxuanr.github.io/note/视频为什么会糊蓝光码率分辨率/摘要:主要介绍一下什么是蓝光、码率、分辨率,以及它们之间的区别。重点介绍码率和蓝光,分辨率太混乱,单独介绍。蓝光蓝光:blue-raydisk。光盘的一种,并无特指某种清晰度。最大的特点是容量大,最低25GB,最大128......