Python實現讓視訊自動打碼,再也不怕出現少兒不宜的畫面了
import cv2
import face_recognition # 人臉識別庫 99.7% cmake dlib face_recognition
import subprocess
def video2mp3(file_name):
outfile_name = file_name.split('.')[0] + '.mp3'
cmd = 'ffmpeg -i ' + file_name + ' -f mp3 ' + outfile_name
print(cmd)
subprocess.call(cmd, shell=False)
def mask_video(input_video, output_video, mask_path='mask.jpg'):
# 讀取圖片
mask = cv2.imread(mask_path)
# 讀取視訊
cap = cv2.VideoCapture(input_video)
# 視訊 fps width height
v_fps = cap.get(5)
v_width = cap.get(3)
v_height = cap.get(4)
# 設定寫入視訊引數 格式MP4
# 畫面大小
size = (int(v_width), int(v_height))
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
# 輸出視訊
out = cv2.VideoWriter(output_video, fourcc, v_fps, size)
# 已知人臉
known_image = face_recognition.load_image_file('tmr.jpg')
biden_encoding = face_recognition.face_encodings(known_image)[0]
cap = cv2.VideoCapture(input_video)
while (cap.isOpened()):
ret, frame = cap.read()
if ret:
# 檢測人臉
# 人臉區域
face_locations = face_recognition.face_locations(frame)
for (top_right_y, top_right_x, left_bottom_y, left_bottom_x) in face_locations:
print((top_right_y, top_right_x, left_bottom_y, left_bottom_x))
unknown_image =外匯跟單gendan5.com frame[top_right_y - 50:left_bottom_y + 50, left_bottom_x - 50:top_right_x + 50]
if face_recognition.face_encodings(unknown_image) != []:
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
# 對比人臉
results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
# [True]
# 貼圖
if results == [True]:
mask = cv2.resize(mask, (top_right_x - left_bottom_x, left_bottom_y - top_right_y))
frame[top_right_y:left_bottom_y, left_bottom_x:top_right_x] = mask
out.write(frame)
else:
break
def video_add_mp3(file_name, mp3_file):
outfile_name = file_name.split('.')[0] + '-f.mp4'
subprocess.call('ffmpeg -i ' + file_name + ' -i ' + mp3_file + ' -strict -2 -f mp4 ' + outfile_name, shell=False)
if __name__ == '__main__':
# 1.
video2mp3('cut.mp4')
# 2.
mask_video(input_video='cut.mp4',output_video='output.mp4')
# 3.
video_add_mp3(file_name='output.mp4',mp3_file='cut.mp3')
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2887485/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PH 如何實現調取展示實時視訊畫面?
- 短視訊程式原始碼,PageSlider實現滑動頁面原始碼IDE
- 自從用了 Alibaba COLA 架構,程式碼再也不怕腐爛了!架構
- Python Selenium實現自動觀看學習通視訊Python
- 有了這個演算法,在Facebook上看VR視訊再也不怕暈演算法VR
- 有趣的角度:《權力的遊戲》少兒不宜資料盤點遊戲
- python實現自動搶課指令碼Python指令碼
- 有了Git這個操作,我再也不怕程式碼混亂了!Git
- 短視訊系統原始碼,直播間實現彈幕的自動傳送原始碼
- Auto.JS實現抖音,刷寶等刷視訊app,自動點贊,自動滑屏,自動切換視訊JSAPP
- Android 8.0 中如何實現視訊通話的畫中畫模式Android模式
- 讓PPT文件自動實現列表播放
- 短視訊平臺搭建,實現banner自動滑動展示效果
- FFmpeg程式碼實現視訊剪下
- 自制新型文字密碼,聊天記錄的畫風都不一樣了,再也不怕被女朋友偷窺手機了!密碼
- 兩個類,讓你再也不用實現onActivityResult()
- 用java的jwindow實現程式執行出的splash畫面。 (轉)Java
- 是否只有實現了容器化、自動編排等等才算是實現了運維自動化?運維
- 利用Python實現自動掃雷小指令碼Python指令碼
- android短視訊開發,實現動態點贊出現的點贊動畫Android動畫
- tp5開發模糊打賞程式,支援圖片視訊,自動提現等
- 視訊直播的實現
- Android中實現簡訊驗證碼自動填入Android
- 滑鼠雙擊頁面實現自動滾動效果
- 自己寫程式碼實現郵件傳送,再也不用視覺化那麼麻煩了!視覺化
- 實現指令碼自動部署docker指令碼Docker
- c++實現彩色炫酷(?)畫面C++
- Oracle自動備份指令碼的實現Oracle指令碼
- dataguard switchover的自動化指令碼實現指令碼
- Python自動登入QQ的實現示例Python
- 再也不怕面試官問我JDK8 HashMap了面試JDKHashMap
- iKon智慧追蹤器:再也不怕丟東西了
- js實現視訊截圖,視訊批量截圖,canvas實現JSCanvas
- 基於DotNetty實現自動釋出 - 自動檢測程式碼變化Netty
- 小視訊app原始碼,動態毛玻璃背景的簡單實現APP原始碼
- 再也不怕面試官問你express和koa的區別了面試Express
- 使用JavaCV實現讀取視訊資訊及自動擷取封面圖Java
- 基於DotNetty實現自動釋出 - 實現一鍵打包釋出Netty