国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python合并ts文件至mp4格式及解密教程詳解

Python合并ts文件至mp4格式及解密教程詳解

2021-12-11 00:17程序員啟航 Python

m3u8準確來說是一種索引文件,使用m3u8文件實際上是通過它來解析對應的放在服務器上的視頻網絡地址,從而實現在線播放。本文給大家介紹Python合并ts文件至mp4格式及解密教程,需要的朋友參考下吧

m3u8是什么格式?m3u8是蘋果公司推出的視頻播放標準,是m3u的一種,只是編碼格式采用的是utf-8。

使用m3u8格式文件主要因為可以實現多碼率視頻的適配,視頻網站可以根據用戶的網絡帶寬情況,自動為客戶端匹配一個合適的碼率文件進行播放,從而保證視頻的流暢度。

Python合并ts文件至mp4格式及解密教程詳解

m3u8準確來說是一種索引文件,使用m3u8文件實際上是通過它來解析對應的放在服務器上的視頻網絡地址,從而實現在線播放。

它將視頻切割成一小段一小段的ts格式的視頻文件,然后存在服務器中(現在為了減少i/o訪問次數,一般存在服務器的內存中),通過m3u8解析出來路徑,然后去請求。

合并 ts 文件其實有很多種方法,有一些教程直接使用 cmd 的 copy 命令直接合并 ts 文件:

copy /b movie*.ts movie_new.ts

這個方法雖然可以合并,但是無法轉化為 mp4 格式,而且也有可能出現視頻缺損的情況。因此本文將講解如何使用 ffmpeg 合并 ts 文件為mp4格式,使用 ffmpeg 也能有效防止視頻出現缺損的問題。

1.準備

開始之前,你要確保python和pip已經成功安裝在電腦上

如果你用python的目的是數據分析,可以直接安裝anaconda

安裝ffmpeg

mac (打開終端(terminal), 用 homebrew 安裝):

brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora

linux:

apt-get install ffmpeg libavcodec-extra

windows:

1. 進入 http://ffmpeg.org/download.html#build-windows,點擊 windows 對應的圖標,進入下載界面點擊 download 下載按鈕,
2. 解壓下載好的zip文件到指定目錄
3. 將解壓后的文件目錄中 bin 目錄(包含 ffmpeg.exe )添加進 path 環境變量中
4. dos 命令行輸入 ffmpeg -version, 出現以下界面說明安裝完成:

Python合并ts文件至mp4格式及解密教程詳解

2.簡單合并ts文件

使用 ffmpeg 合并一些 ts 文件非常簡單,你只需要在終端輸入一行命令即可:

ffmpeg -f concat -i file_list.txt -c copy output.mp4

其中 file_list.txt 為如下格式文本文件:

file 'input1.ts'
file 'input2.ts'
file 'input3.ts'

我們可以用 python 腳本生成這個 file_list.txt:

?
1
2
3
4
5
6
import os
filepath = "你的ts視頻存放路徑"
file_list = sorted(os.listdir(filepath))
with open("你的ts視頻存放路徑/file_list.txt","w+") as f:
    for file in file_list:
        f.write("file '{}'\n".format(file))

注意,這個 file_list.txt 需要和你的 ts 視頻存放在同一個目錄下,然后 cd 進入此目錄,并執行上面提到過的 ffmpeg 合并轉換命令:

ffmpeg -f concat -i file_list.txt -c copy output.mp4

3.解密處理

上面我們講的是沒有經過加密的 ts 文件,這些文件下載后直接可以播放,但經過aes-128加密后的文件下載后會無法播放,所以還需要進行解密。

如何判斷是否需要加密?觀察視頻網站是否有m3u8的文件傳輸,下載下來并打開:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#extm3u
#ext-x-version:3
#ext-x-targetduration:13
#ext-x-media-sequence:0
 
//這里是注釋,真實文件里不會有的,
//看看你的m3u8文件里有沒有這一行,如果有的話,這個m3u8文件是加密的,請繼續往下看
//如果沒有這行的話,特別是沒有這個#ext-x-key,那么恭喜你,這個m3u8沒有加密,你直接按本文教程第二點合并即可
#ext-x-key:method=aes-128,uri="http://www.example.com/20180125/key.key"
 
 
#extinf:12.5,
//下面的這個其實才是視頻真正的地址,你放在瀏覽器地址欄上直接回車是可以直接下載的
//不過這樣的鏈接在m3u8文件里會有很多,建議使用工具下載(迅雷)、ffmpeg、vlc等
//這里還可能出現gbdyo3576000.ts這種情況,其實是把前面的路徑省略了,可根據m3u8文件的路徑自行加上
http://www.example.com/20180125/gbdyo3576000.ts
#extinf:12.5,
http://www.example.com/20180125/gbdyo3576001.ts
#extinf:12.5,
http://www.example.com/20180125/gbdyo3576002.ts

如果你的文件是加密的,那么你還需要一個key文件,key文件下載的方法和m3u8文件類似,如下所示 key.key 就是我們需要下載的 key 文件,并注意這里 m3u8 有2個,需要使用的是像上面一樣存在 ts 文件超鏈接的 m3u8 文件:

下載所有 ts 文件,將下載好的所有的 ts 文件、m3u8、key.key 放到一個文件夾中,將 m3u8 文件改名為 index.m3u8,將 key.key 改名為 key.m3u8 。更改 index.m3u8 里的 url,變為你本地路徑的 key 文件,將所有 ts 也改為你本地的路徑,如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
#extm3u
#ext-x-version:3
#ext-x-targetduration:13
#ext-x-media-sequence:0
#ext-x-key:method=aes-128,uri="e:/20180125/key.m3u8"
#extinf:12.5,
e:/20180125/gbdyo3576000.ts
#extinf:12.5,
e:/20180125/gbdyo3576001.ts
#extinf:12.5,
e:/20180125/gbdyo3576002.ts

然后用ffmpeg進行合并:

ffmpeg -allowed_extensions all -i index.m3u8 -c copy new.mp4

這樣就大功告成了!我們成功解密并使用 ffmpeg 合并了這些 ts 視頻片段,實際應用場景可能和這不一樣,希望我們這篇文章能起到拋磚引玉的作用。

到此這篇關于python合并ts文件至mp4格式及解密教程的文章就介紹到這了,更多相關python合并ts文件至mp4內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/aaahtml/article/details/118379490

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线观看亚洲一区二区三区 | 国产午夜精品一区二区三区视频 | 国产精品美女久久久 | av片免费 | 久草新免费 | 久久精品视频网站 | 日本a在线天堂 | 亚洲精品一区二区三区在线播放 | www.爱色av.com| av免费网站在线观看 | 久久99精品国产.久久久久 | 久久久久久网站 | 999精品嫩草久久久久久99 | 免费三级黄色片 | 日韩免费视频 | 99亚洲精品 | 伊人亚洲 | 欧美精品久久久 | 日本在线免费观看视频 | 精品国产乱码久久久久久丨区2区 | 成人国产精品久久久 | 久久精品亚洲精品国产欧美kt∨ | av色伊人久久综合一区二区 | www.久久.com| 91精品观看 | 久久不卡| 自拍偷拍专区 | 日韩中文字幕一区 | 久久亚 | 国产片免费 | 国产三级 | 超碰日韩 | 欧美精品欧美精品系列 | 欧美日韩中文字幕在线 | 韩国精品一区 | 久久人人爽人人爽人人片亚洲 | 五月天色婷婷视频 | 91麻豆精品国产91久久久久久 | 中文在线播放 | 国内自拍视频网 | 黄毛片|