[PYTHON] Comment enregistrer une partie d'une longue vidéo en utilisant OpenCV

Déclencheur

Guf / Proliferation YouTuber [Tachibana Takashi qui augmente avec "NHK" et double avec "break"](https: // www. synchronisé avec youtube.com/watch?v=NcR2d8_iM9o): rolling_eyes: Avec juste le bon matériel vidéo, il semble que vous puissiez faire quelque chose avec opencv comme la division de zone, la reconnaissance faciale, l'effacement de telop, etc. Cette vidéo dure 18 minutes, mais je souhaite utiliser uniquement la première minute lorsque le candidat apparaît. Donc, je vais essayer d'en extraire seulement une partie par temps avec python et OpenCV uniquement.

Matériel d'origine

[Détruisez NHK![Radiodiffusion politique] Parti qui protège le peuple de la NHK [Tachibana Takashi et 3 autres] District proportionnel national](http://www.youtube. com / watch? v = iRi4od_Thus)

Méthode

J'ai essayé de mesurer avec time.time (), mais c'était plus efficace de le contrôler en fonction du nombre d'images.

Aussi, parce que c'est "la première minute où le candidat apparaît"

C'était fabriqué.

développement de

import cv2

if __name__ == '__main__':

	cap = cv2.VideoCapture('drop_out_nhk.mp4')

	cap_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
	cap_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
	fps = cap.get(cv2.CAP_PROP_FPS)

	fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
	writer = cv2.VideoWriter('one_minutes.mp4',fourcc, fps, (cap_width, cap_height))

	#Heure de début ou de fin que vous souhaitez extraire
	begin = 30
	end = 90

	for i in range(end * fps):
		ret, frame = cap.read()
		if ret:
			if begin * fps < i:
				writer.write(frame)
			
	writer.release()
	cap.release()

résultat

Je pense que c'est juste une minute.

en conclusion

Je pensais que j'utiliserais ʻasyncio`, mais j'ai pu l'implémenter assez facilement. Lorsque je change la taille de l'image, je fais une erreur avec le codec pour une raison quelconque.

Lien référencé

Recommended Posts

Comment enregistrer une partie d'une longue vidéo en utilisant OpenCV
Comment prendre une image capturée à partir d'une vidéo (OpenCV)
[Ruby] Comment remplacer uniquement une partie de la chaîne de caractères correspondant à l'expression régulière?
Comment mélanger une partie de la liste Python (au hasard.shuffle)
Comment transloquer un tableau à deux dimensions en utilisant uniquement python [Note]
Comment diviser et enregistrer un DataFrame
Comment se débarrasser des longues inclusions
Comment dessiner un graphique avec Matplotlib
Comment couper la partie inférieure droite de l'image avec Python OpenCV
Comment lire une vidéo tout en regardant le nombre d'images (Mac)
Comment coder un drone en utilisant la reconnaissance d'image
Comment mettre en ligne sur un Drive partagé à l'aide de pydrive
Comment désinstaller un module installé à l'aide de setup.py
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
Enregistrez le tableau numpy dans un fichier wav à l'aide du module wave
Comment écrire une interface graphique à l'aide de la commande maya
Remarques sur l'utilisation d'AIST Spacon ABCI
Comment configurer un environnement Python à l'aide de pyenv
Découpez une partie de la chaîne à l'aide d'une tranche Python
Comment faire un jeu de tir avec toio (partie 1)
Comment organiser un séminaire pratique à l'aide de Jupyter à l'aide de Docker
Comment boucler et lire une vidéo gif avec openCV
Comment enregistrer une table récupérée par python en csv
Bases de PyTorch (2) -Comment créer un réseau de neurones-
Implémentation d'un réseau de neurones convolutifs utilisant uniquement Numpy
Comment exécuter une commande à l'aide d'un sous-processus en Python
Comment créer une instance d'une classe particulière à partir de dict en utilisant __new__ () en python
Comment obtenir uniquement les données nécessaires du groupe de données structurées à l'aide d'une méthode polyvalente
Comment dessiner facilement la structure d'un réseau de neurones sur Google Colaboratory à l'aide de "convnet-tiroir"
[Ubuntu] Comment supprimer tout le contenu du répertoire
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment créer un laboratoire de piratage - Kali Linux (2020.1) VirtualBox 64 bits Partie 2-
Comment développer dans un environnement virtuel Python [Memo]
Comment générer une requête à l'aide de l'opérateur IN dans Django
Comment afficher une liste des versions installables avec pyenv
Comment enregistrer un package dans PyPI (à partir de septembre 2017)
Comment obtenir une liste d'exceptions intégrées pour python
Comment trouver le coefficient de mise à l'échelle d'une ondelette bipolaire
Journal d'enquête sur la façon d'optimiser les hyperparamètres LightGBM à l'aide d'Optuna
Comment obtenir une liste de liens à partir d'une page de wikipedia
Comment connecter le contenu de la liste dans une chaîne de caractères
Comment pirater un terminal
Un mémorandum d'utilisation de eigen3
Comment afficher une colonne de fichiers spécifiée sous Linux (awk)
Remarques sur la création d'un environnement LAMP à l'aide de Vagrant et VirtulBox
Comment coller un fichier CSV dans un fichier Excel à l'aide de Pandas
Présentation de la création d'un socket serveur et de la création d'un socket client
J'ai essayé d'obtenir une base de données sur les courses de chevaux en utilisant Pandas
Comment déterminer l'existence d'un élément sélénium en Python
[Python] Comment forcer une méthode d'une sous-classe à effectuer un processus spécifique
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
ABC170 E - Comment résoudre sans utiliser le multiset de Smart Infants
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
J'ai essayé de résumer brièvement la procédure de démarrage du développement de Django
Comment vérifier la taille de la mémoire d'un dictionnaire en Python