这个问题搞了我两天,一直以为是解密的问题,虽然我也不会解密m3u8直接是下载开源项目拿来用的,
拉取ts文件后放到服务器上,发现无法使用,显示“Playback cannot continue. No available working or supported playlists.”
然后我单独吧ts下载到本地,发现播放器可以播放,但是放到服务器上,video-js始终解析不了。
查阅了诸多资料,着一篇文章给了我灵感(非常感谢?)
https://www.codercto.com/a/89645.html
看到 “4.2、加密 TS 的陷阱“ 我可能大概遇到和他类似的问题了,
然后我就用”WinHex“工具对比了同一个ts文件(一个可以播放,一个不能播放)
发现不能播放的头部缺少了一块
我发现把这个神秘的代码加进去,ts就可以放了,虽然我不知道这个神秘的代码什么用,但是解决问题了。头痛
package main
import (
"encoding/hex"
"fmt"
"io/ioutil"
"os"
)
func main() {
f, err := os.OpenFile("./消失的情人节/0002no.ts", os.O_RDONLY, 0600)
defer f.Close()
if err != nil {
fmt.Println(err.Error())
} else {
contentByte, err := ioutil.ReadAll(f)
if err != nil {
fmt.Println(err.Error())
}
ufo := "474000100000B00D0001C100000001EFFF3690E23DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + hex.EncodeToString(contentByte)
test, _ := hex.DecodeString(ufo)
ioutil.WriteFile("./消失的情人节/oktest.ts", test, 0666) //写入文件(字节数组)
}