python ts视频转mp4
生活随笔
收集整理的這篇文章主要介紹了
python ts视频转mp4
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先說明一下Ts格式
TS(TransportStream,傳輸流)是一種封裝的格式,它的全稱為MPEG2-TS。MPEG2-TS是一種標準數據容器格式,傳輸與存儲音視頻、節目與系統信息協議數據,主要應用于數字廣播系統,譬如DVB、ATSC與IPTV。傳輸流最初是為廣播而設計的。后來,通過在標準的188字節數據包中添加4字節的時間碼(TC),從而使該數據包成為192字節的數據包,使其適用于數碼攝像機,錄像機和播放器。
處理場景
爬取某魚以及某些網站的視頻,會獲取到很多的以ts格式結尾的視頻文件,這個時候需要進行合成成一個Ts視頻文件或者MP4格式視頻,我自己的電腦播放不了Ts后綴格式視頻,于是就將Ts后綴格式視頻轉為了MP4。
直接使用os內置模塊以下是代碼:
import osdef merge_ts_video(ts_path, ts_path_):all_ts = os.listdir(ts_path)# 最好是對all_ts 進行排序處理一下# 我這里獲取到后直接對ts視頻文件進行了排序處理,所以沒有加排序操作for file in all_ts:with open(ts_path + file, 'rb') as f1: # 讀取視頻以二進制進行處理with open(ts_path_ + "VideoName.mp4", 'ab') as f2: # 存儲到指定位置,VideoName為變量值f2.write(f1.read())os.remove(os.path.join(ts_path, file)) # 將每次處理后的ts視頻文件進行刪除merge_ts_video(r"./VideoPreliminaryStorage/", r"./VideoFinalStorage/") # 函數調用:merge_ts_video # 參數值: # 參數1 存放 ts 的路徑 VideoPreliminaryStorage # 參數2 存放 mp4 的路徑 VideoFinalStorage以上內容雖然可以將Ts格式視頻轉為MP4格式,但是一些播放器無法識別出來,如:某音
轉完之后是MP4,但是視頻的格式變為了:媒體文件(.mp4) (.mp4)
所以還是使用ffmpeg了
先將所以的Ts格式視頻合并成一個Ts格式文件,合并完成后進行轉mp4
def merge_ts_video(ts_path, ts_path_, ffmpeg_path, video_name):all_ts = os.listdir(ts_path)all_ts_mp4 = [ts_path + file for file in all_ts]for all_ in all_ts_mp4:with open(all_, 'rb') as f1:with open(ts_path + f"{video_name}.ts", 'ab') as f2:f2.write(f1.read())# 刪除多余ts文件os.remove(os.path.join(all_))# Ts視頻轉MP4new_ts = os.listdir(ts_path)cmd = ffmpeg_path + " -i " + f"{ts_path + new_ts[0]}" + " -acodec copy -vcodec copy -absf aac_adtstoasc " + ts_path_ + "\\" + f"{video_name}.mp4"os.popen(cmd)# 刪除多余ts文件,清空文件夾(VideoPreliminaryStorage)os.remove(video_name + '.ts')for i in range(0, len(all_ts_mp4)):ts_name = os.path.basename(all_ts_mp4[i]) # 去掉文件名前面的文件路徑mp4_name = os.path.splitext(ts_name)[0] # 去掉文件名的后綴"""mp4 --> ts : ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.tsts --> mp4 : ffmpeg -i 2.ts -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4"""# # 拼接好運行ffmpeg的命令行語句cmd = ffmpeg_path + " -i " + all_ts_mp4[i] + " -acodec copy -vcodec copy -absf aac_adtstoasc " + ts_path_ + "\\" + mp4_name + ".mp4"os.popen(cmd) # 函數調用:merge_ts_video # 參數值: # 參數1 存放 ts 的路徑 ts_path # 參數2 存放 mp4 的路徑 ts_path_ # 參數3 ffpmpeg 的路徑 ffmpeg_path # 參數4 視頻存儲 的名稱 video_name總結
以上是生活随笔為你收集整理的python ts视频转mp4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux进程流量检测,linux使用s
- 下一篇: Annovar 软件注释流程