前言
盜版影視網站m3u8串流影片常伴隨將ts片段偽裝 bmp 、png或 jpg 等圖片類型,上傳到免費圖床,達到白嫖圖床目的,但這也導致ts無法使用ffmpeg進行合併成.mp4檔案,因此需要去除圖片數據保留影片部分。
思路
先觀查正常與偽裝圖片二進制檔案,可以發現ts影片片段二進制檔案開始沒多久擁有”FFmpeg Service01w”關鍵字,因此我們可以由這邊處理文件。
實作
這邊使用python實作,其他程式語言也可以用同樣原理處理,原理就如思路所寫進行處理就可以。
import os
ts_file_path = 'music_18a544d252da4fb497e43e04f3c3cce10.jpeg' # 偽裝圖片ts檔案
replace_data = None
with open(ts_file_path,"rb") as f:
data = f.read()
# 判斷是否有PNG包頭
if data.startswith(b'\211PNG\r\n\032\n'):
# 尋找FFmpeg Service01w位置,並且向前取得檔案開頭
index = data.find(b'FFmpeg\tService01w')
if index>=25:
replace_data = data[index-25:]
# 如果是有偽裝ts進行保存
if replace_data is not None:
with open("{}.ts".format("/".join(os.path.splitext(ts_file_path)[:-1])), "wb") as f:
f.write(replace_data)
print("ts偽裝移除完成")
else:
print("ts檔案沒有偽裝")
太神啦 感謝你 最近剛遇到這個問題
很高興可以幫助到您,後續有任何問題都可以提問喔