01
2025
07
23:07:34

小白也能白嫖:jsDelivr+FFmpeg打造切片视频床 ----很好啊 !很好!GitHub给封死啦!


小白也能白嫖:jsDelivr+FFmpeg打造切片视频床


   了解jsd(jsdelivr)的小伙伴们通常都用它来当个图床用。但是,好不容易能薅资本主义的羊毛,白嫖党怎能就此罢休?下面就来解锁jsDelivr的高级玩法吧。


jsDelivr实现切片视频播放

11f3e35efd3ef59615798503afc1fc81_091d1950e1e7bc328d8bd14016eb7a7a09ab7e54.jpg
个人博客使用Dplayer播放[你的名字]

如上图,视频成品链接为https://cdn.jsdelivr.net/gh/huxx16/m3u8/yourname/playlist.m3u8

嵌入Dplayer即可在个人博客内自建电影院。

本文将讲述实现原理、介绍什么是m3u8、如何转码并切片视频以及上传使用。


如何实现

jsd能加载GitHub中单个20M以下的静态资源,所以能实现图床的功能。视频床也就是同样的道理,但通常视频的大小都超出了20M的大小限制。这时我们就可以将视频切片,用m3u8索引 整合播放。


m3u8是什么


m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8。

  m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。使用m3u8格式文件主要因为可以实现多码率视频的适配,视频网站可以根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。

将m3u8索引文件与视频切片放在GitHub同一目录下,即可通过jsd调用达到播放目的


jsDelivr与GitHub都明白,那标题里的FFmpeg又是什么?

FFmpeg是一套Linux环境下开发出来的视频音频处理程序,但它可以在包括 Windows 在内的大多数操作系统中编译。我们用它来将视频切片。


手头有视频吗,现在就开始切片试试吧!

使用FFmpeg切片视频

视频转码

1.对视频进行转码(转为 mp4),将视频文件转为视频编码 h.264,音频编码 aac 格式的 mp4 文件,mp4 视频文件不是 h.264 编码到后面切片的时候可能会遇到很多莫名其妙的问题。

Q:如何转码? 

A:小白建议格式工厂,老司机直接ffmpeg转吧,这里不提供ffmpeg转码教程了。格式工厂操作如下图

2f82513c2185ebce98b9892222a81179_956be5c182eb0e7f7a5dcab2f26ba2e30ae3d717.png
选择输出为MP4
选择转出为MP4

14d69bd4f63b7d27561086dc25dac1b3_5656c077441b011f4d4650c5c60d2f0fb8e67efe.png
添加视频后,选择输出配置
11b424779504bd6add5e71070f6d0bac_74c5c6dcc9bad43c3c4842047d4e031f6ca9763f.png
如图设置完后,点击确定

cdb229d2b487c5232df23f2393d75706_1660099e76288650bdc11faf4a3fafc23eb38f0a.png
再次确定
cdb229d2b487c5232df23f2393d75706_1660099e76288650bdc11faf4a3fafc23eb38f0a.png
单机开始,然后等待完成

转码完成后输出MP4文件,我们记住它的位置


d85f478aca5982be808c9af71cd6db93_434703a63527482215e08628357f78b0d0cebfbd.png

FFmpeg环境配置

2.去FFmpeg官网http://ffmpeg.org/下载软件包,软件包中找到主程序ffmpeg.exe


ae6b5084d7c290633678e65a9c633e3e_3ebaba1d82e01f0a43dbc746210bc386f1dfa03b.png
没错就是它

我们将它复制

粘贴到MP4的输出目录

d51c84d1cb83a66db45e577b8303e811_3d8aa0f787089dcf372cb67a1fd061c07028856e.png
放在一个目录中

win+R打开cmd,cd到这个目录

键入ffmpeg、回车。测试一下环境

ec392d52a647f25db7daaac4cfa5d0e4_bcc482c49e548465cffaa876e0add6a4f68a8deb.png
如上

显示如上选项即环境配置成功!


开始切片,假设你的视频文件名为abd.mp4

  1.先用ffmpeg把abc.mp4文件转换为abc.ts文件:

ffmpeg -y -i abc.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb abc.ts


  2.再用ffmpeg把abc.ts文件切片并生成playlist.m3u8文件,5秒一个切片:

ffmpeg -i abc.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 5 abc%03d.ts

这其中5表示5秒一个切片,可以自行更改(单个大小要在20m以下

( playlist.m3u8可以自行改成xxx.m3u8 ,如更改则最终组成链接时需要对应的更改文件名)

等待完成,我们得到

2e996d0be9b1a334b3d7d3b560f78b2e_4ec3fd2176ae4d609bffeea6a747c99a8a8a2d8c.png
如图

 和

2c489bff22f10f1cc2502e186acd58f2_4df4e0d6696d08b1c65f26f3bcc0dbf675b96f5a.png
如图

说明切片成功!(切片失败的原因可能是你磁盘空间不足导致


上传所有文件至GitHub

这就不用解释了吧。。上传m3u8文件以及所有的xxx.ts文件

记得放在同一个文件目录中!

最终完成和我们的视频链接为

https://cdn.jsdelive.net/gh/GitHub用户名/库名/文件目录/playlist.m3u8


Eg:如图用户huxx16,文件存放在名为"m3u8"的库下/yourname目录

858aaaf7a2ba932534f78d661a88980c_c773be0210b5cc46c0682215312934ee47464223.png

对应的链接就为 https://cdn.jsdelivr.net/gh/huxx16/m3u8/yourname/playlist.m3u8

以上!


什么?你说m3u8怎么播放?百度找个解析接口套进去试试吧

以上乱七八糟的教程早在2018年就有人在CSDN上提出了理论。我也有参考老蘑菇https://m1314.cn/403.html的这篇文章。可能我唯一做到的就是讲的乱七八糟了亿点吧。



推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://www.hqyman.cn/post/12035.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: