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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- android短視訊開發,實現動態點贊出現的點贊動畫Android動畫
- Python Selenium實現自動觀看學習通視訊Python
- 自從用了 Alibaba COLA 架構,程式碼再也不怕腐爛了!架構
- PH 如何實現調取展示實時視訊畫面?
- 短視訊程式原始碼,PageSlider實現滑動頁面原始碼IDE
- python實現自動搶課指令碼Python指令碼
- 再也不怕面試官問我JDK8 HashMap了面試JDKHashMap
- 面試 Spring Boot 再也不怕了,答案都在這裡了!面試Spring Boot
- MXAlertView,一行程式碼實現iOS帶動畫的彈出檢視View行程iOS動畫
- 再也不怕面試官問你express和koa的區別了面試Express
- 有了這個演算法,在Facebook上看VR視訊再也不怕暈演算法VR
- 面試大資料再也不怕沒專案可說了面試大資料
- 短視訊系統,Android 使用MotionLayout實現動畫效果Android動畫
- 有了Git這個操作,我再也不怕程式碼混亂了!Git
- 直播軟體原始碼,實現頁面滾動到可視區顯示動畫效果原始碼動畫
- 有趣的角度:《權力的遊戲》少兒不宜資料盤點遊戲
- 讓動畫實現更簡單,Flutter 動畫簡易教程!動畫Flutter
- 短視訊系統原始碼,直播間實現彈幕的自動傳送原始碼
- 利用Python實現自動掃雷小指令碼Python指令碼
- 50道Redis面試題史上最全,以後面試再也不怕問Redis了Redis面試題
- 兩個類,讓你再也不用實現onActivityResult()
- Springboot啟動擴充套件點超詳細總結,再也不怕面試官問了Spring Boot套件面試
- 短視訊平臺搭建,實現banner自動滑動展示效果
- Auto.JS實現抖音,刷寶等刷視訊app,自動點贊,自動滑屏,自動切換視訊JSAPP
- 看完這篇,再也不怕面試官問我執行緒池了面試執行緒
- 是否只有實現了容器化、自動編排等等才算是實現了運維自動化?運維
- FFmpeg程式碼實現視訊剪下
- Python自動登入QQ的實現示例Python
- 自制新型文字密碼,聊天記錄的畫風都不一樣了,再也不怕被女朋友偷窺手機了!密碼
- 基於DotNetty實現自動釋出 - 自動檢測程式碼變化Netty
- 自己寫程式碼實現郵件傳送,再也不用視覺化那麼麻煩了!視覺化
- tp5開發模糊打賞程式,支援圖片視訊,自動提現等
- 基於DotNetty實現自動釋出 - 實現一鍵打包釋出Netty
- Android 動畫實現Android動畫
- Flutter實現動畫Flutter動畫
- 實現指令碼自動部署docker指令碼Docker
- 圖解 Java 執行緒的生命週期,看完再也不怕面試官問了圖解Java執行緒面試
- jQuery中動畫的實現jQuery動畫