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







Posted by 자유프로그램