自已做的MP4在線WEB站一直存在播放首屏卡的問題,嚴重的卡近10S,還以為是高清/碼率/分辨率過大的問題,如果像大站那樣優化也太麻煩了,因為是自己用,所以也並不在意那種開始時的卡頓,近日無意閱讀一篇文章,談到這種問題
簡單來說就是網上下載的MP4視頻沒有moov.udta.meta,導致瀏覽器不能很快獲取到視頻總體的信息,解決方法就是用ffmpeg重新處理,單個文件處理就是
ffmpeg -i input.mp4 -movflags faststart -acodec copy -vcodec copy output.mp4
這樣的命令。處理后首屏卡的情況的確大大改善,因文件較多,把ffmpeg加入系統path變量,然后寫了一個python批量處理。代碼如下:
#coding:utf-8 from pathlib import Path import os mp4_filepath=Path('D:\視頻\WEB視頻') save_path=mp4_filepath.joinpath('處理后視頻') #拼合保存路徑 save_path.mkdir(exist_ok=True) #如路徑目錄不存在創建 for x in mp4_filepath.glob('*'): #列出目錄下所有文件 if x.suffix.upper()=='.MP4': #判斷擴展名為mp4的文件再進入處理 save_as_path=save_path.joinpath(x.name) #拼合保存的絕對路徑,文件名為原文件名 exe_command= f'ffmpeg -i "{x}" -movflags faststart -acodec copy -vcodec copy "{save_as_path}"' #拼合執行命令,注意如文件有空格需用雙引號括起來,windows用單引號會有問題 try: x1=os.popen(exe_command) #執行 print(x1.read()) #讀出信息流 except: print(f"視頻{x}出錯了!")