OpenCV-python + piped FFMPEG 사용법
소개
안녕하세요 streampack 팀의 메디입니다.
htps : // c ぉ う ぱ ck. jp / 세 r ゔ ぃ 세 / 오 치온 / st 레아 mpa ck. HTML
Copyrights
빅 벅 버니
© copyright 2008, Blender Foundation | ㅋㅋㅋ 미세 g 부분 ck 분 y. 오 rg
Objective · 목적
Learn how to use OpenCV python with FFMPEG & VP8.
FFMPEG와 VP8에서 OpenCV 파이썬을 사용하는 방법을 배웁니다.
Requirements
FFMPEG must be installed on your system.
FFMPEG가 시스템에 설치되어 있어야 합니다.
On mac, you can run :
예를 들어, mac에서 :
brew install ffmpeg
OpenCV python installation · OpenCV python 설치
pip3 install opencv-python
About OpenCV & codecs · OpenCV 및 코덱 정보
By default OpenCV is shipped with royalty free codecs only.
For using non free codecs, you can compile OpenCV yourself (which takes time) or you can pipe OpenCV with FFMPEG.
기본적으로 OpenCV에는 로열티가 없는 코덱만 있습니다.
자유롭지 않은 코덱을 사용하려면 OpenCV를 직접 컴파일하거나 (시간이 걸립니다) 또는 OpenCV를 FFMPEG로 파이프 할 수 있습니다.
Royalty free codecs · 로열티 프리 코덱
In this example we will use the VP8 codec.
이 예에서는 VP8 코덱을 사용합니다.
NB : OpenCV uses BGR color format.
참고 : OpenCV는 BGR 색상 형식을 사용합니다.
구현 및 구현
import cv2
import os
import time
import sys
# Don't forget to check the framerate of your input file !! You can check with : ffprobe yourFile.mp4
out = cv2.VideoWriter(
"output.mkv", cv2.VideoWriter_fourcc(*'VP80'), 25.0,
(720,400))
# The input file is located in the current working directory.
cap = cv2.VideoCapture(os.getcwd()+"/"+'Big_Buck_Bunny_Trailer_400p.ogv')
if (cap.isOpened()== False):
print("Error opening video stream or file")
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
# Do something with the frame...
ts = time.time()
cv2.putText(frame ,"Timestamp : " + str(ts), (15, 15),
cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 255, 0), 2)
out.write(frame)
# Press Q on keyboard to exit
if cv2.waitKey(25) & 0xFF == ord('q'):
break
else:
break
# Cleaning
out.release()
cap.release()
cv2.destroyAllWindows()
Standard Output (stdout) piped to FFMPEG & FFPLAY
NB : OpenCV uses BGR color format.
참고 : OpenCV는 BGR 색상 형식을 사용합니다.
Data from OpenCV to FFPLAY · OpenCV에서 FFPLAY로 데이터
python3 simple.py | ffplay -f rawvideo -pix_fmt bgr24 -s 720x400 -framerate 25 -i -
Data from OpenCV to FFMPEG · OpenCV에서 FFMPEG로 데이터
In this example we will use the libx264 encoder.
이 예에서는 libx264 인코더를 사용합니다.
python3 simple.py | ffmpeg -f rawvideo -pix_fmt bgr24 -s 720x400 -framerate 25 -i - -c:v libx264 output.mp4
구현 및 구현
import cv2
import os
import time
import sys
# Don't forget to check resolution & framerate !! You can check with : ffprobe yourFile.mp4
# Simple playback
# python3 simple.py | ffplay -f rawvideo -pix_fmt bgr24 -s 720x400 -framerate 25 -i -
# Encoding
# python3 simple.py | ffmpeg -f rawvideo -pix_fmt bgr24 -s 720x400 -framerate 25 -i - -c:v libx264 output.mp4
# The input file is located in the current working directory.
cap = cv2.VideoCapture(os.getcwd()+"/"+'Big_Buck_Bunny_Trailer_400p.ogv')
if (cap.isOpened()== False):
print("Error opening video stream or file")
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
# Do something with the frame...
ts = time.time()
cv2.putText(frame ,"Timestamp : " + str(ts), (15, 15),
cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 255, 0), 2)
# We send the frame to the standard output, then FFMPEG will catch it and process it
sys.stdout.buffer.write(frame.tobytes())
# Press Q on keyboard to exit
if cv2.waitKey(25) & 0xFF == ord('q'):
break
else:
break
# Cleaning
cap.release()
cv2.destroyAllWindows()
Information sources · 출처
htps : // py 피. 오 rg / p 로지 ct / 오펜 cv py 텐 /
htps //w w. ㄴ fmぺg. rg/
htps : // 코몬 s. 으아아아아. 오 rg / ぃ き / ふぃ ぇ : 비 g_ 부 CK_ 분 y_T 같아 r_400p. 오 gv
Reference
이 문제에 관하여(OpenCV-python + piped FFMPEG 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mehdi/items/2298b180d578ce80a53c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)