python -- ffmpeg 이용한 video, audio capture
환경 : windows 7 32bit, python 2.7.8,
FFmpeg version: 2014-09-28 git-3edb9aa
webcam : Logitech HD Webcam C510
windows 화면 캡쳐 프로그램 : Setup Screen Capturer Recorder v0.12.8.exe
참고사이트 : http://nerdlogger.com/2011/11/03/stream-your-windows-desktop-using-ffmpeg/
https://www.ffmpeg.org/ffplay-all.html#gdigrab
https://github.com/rdp/screen-capture-recorder-to-video-windows-free
<< 준비 작업 >>
** FFmpeg 다운로드.
http://ffmpeg.zeranoe.com/builds/
-- FFmpeg 32-bit Static 다운로드함.
-> 다운받은 ffmpeg-20140928-git-3edb9aa-win32-static.7z 파일 압축을 풀면,
bin 폴더에 ffmpeg.exe 존재
-> 사용의 편의를 위해 ffmpeg.exe 를 python 설치된 폴더 ( ex: C:\Python27\ )로 복사함.
** Screen Capture Recorder 다운로드.
http://sourceforge.net/projects/screencapturer/files/?source=navbar
소스 및 설명 : https://github.com/rdp/screen-capture-recorder-to-video-windows-free
<< 본격적인 시작하기 >>
** directshow devices 목록 보기.
ffmpeg -list_devices true -f dshow -i dummy
---> "留덉씠??HD Webcam C510)" ; 요것이 뭔가???
==> 확인 하기위해 python으로 코드 짬..
# -*- coding: utf-8 -*- import subprocess import re p = subprocess.Popen(["ffmpeg","-list_devices","true","-f","dshow","-i","dummy"], stdout=subprocess.PIPE,stderr=subprocess.PIPE) out, err = p.communicate() print err tt = err.splitlines() dshow_devices = [] for i, x in enumerate(tt): result = re.search('"(.+)"',x) if result: b = result.groups() print b[0] dshow_devices.append(b[0])
<결과>
==> 즉. "留덉씠??HD Webcam C510)" 는 "마이크(HD Webcam C510)" 인데 , 한글 깨진것임...
** webcam video 녹화.
ffmpeg -f dshow -i video="Logitech HD Webcam C510" out.mp4
** webcam video , audio(마이크) 녹화.
ffmpeg -f dshow -i video="Logitech HD Webcam C510" -f dshow -i audio="마이크(HD Webcam C510)" -r 30 out2.mp4
** 전체화면 녹화 , webcam 마이크 소리 녹화
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="마이크(HD Webcam C510)" -r 30 out3.mp4
** 전체화면 녹화 , 컴퓨터 사운드 녹화
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -r 30 out4.mp4
* Logitech HD Webcam C510 녹화 해상도 옵션 구하기.
ffmpeg -list_options true -f dshow -i video="Logitech HD Webcam C510"
** ffmpeg 자체 내장된 "gdigrab" 화면 video 만 저장하기 >
https://www.ffmpeg.org/ffplay-all.html#gdigrab
- 전체화면 저장
ffmpeg -f gdigrab -framerate 6 -i desktop out6.mp4
- 시작점 (10,20) 부터 시작하여 vga 크기 (640x480) 만큼만 녹화하기.
ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out7.mp4
- 시작점 (100,200) 부터 시작하여 svga 크기 (800x600) 만큼만 녹화하기.
ffmpeg -f gdigrab -framerate 6 -offset_x 100 -offset_y 200 -video_size svga -i desktop out8.mp4
- 윈도우 title 이 "Calculator" 인 화면만 녹화하기. (???)
ffmpeg -f gdigrab -framerate 6 -i title=Calculator out9.mp4
- 시작점 (100,200) 부터 시작하여 svga 크기 (800x600) 만큼만 녹화 + "마이크(HD Webcam C510)" 이용한 audio 녹화
ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size svga -i desktop -f dshow -i audio="마이크(HD Webcam C510)" out10.mp4
- 시작점 (100,200) 부터 시작하여 svga 크기 (800x600) 만큼만 녹화 + 컴퓨터 사운드 녹화
ffmpeg -f gdigrab -framerate 6 -offset_x 100 -offset_y 200 -video_size svga -i desktop -f dshow -i audio="virtual-audio-capturer" out11.mp4
- 시작점 (100,200) 부터 시작하여 720x405 (youtube) 크기 만큼만 녹화 + 컴퓨터 사운드 녹화
ffmpeg -f gdigrab -framerate 6 -offset_x 100 -offset_y 200 -video_size 720x405 -i desktop -f dshow -i audio="virtual-audio-capturer" out9.mp4
'python' 카테고리의 다른 글
장고 - django 1.7 tutorial 1 정리 (1) | 2014.10.14 |
---|---|
django 설치, 버전 확인 (0) | 2014.10.14 |
beautiful Soup, PhantomJS 사용한 javacript web scraping ( pubmed ) (1) | 2014.09.24 |
python debugging -- exception 발생한 file name, line number 찾기 (0) | 2014.09.19 |
bioinfomatics -- vienna format 으로 RNA 그리기 (0) | 2014.09.02 |