[macos] ffmpeg으로 화면캡처(capture desktop)해서 rtmp송출
[참고글 : 빌드 / 설치 / 실행파일 다운로드]
FFmpeg 바이너리 다운로드 (Windows (32bit/64bit), macOS 64bit)
- 화면 캡처 방법 참고 : https://trac.ffmpeg.org/wiki/Capture/Desktop
- 구동환경 : 맥북 + 외부모니터 연결
$ ffmpeg -f avfoundation -list_devices true -i ""
o 비디오장치
[0] : 내장카메라
[1] : 맥북모니터
[2] : 외부모니터
o 오디오장치
[0] : 맥북 마이크
[1] : Movavi 앱 가상 장치 같은데... (신경쓰지말자)
o 송출 명령 구성
1. 장치/스트림 구성
-f avfoundation -video_device_index 1 -audio_device_index 0 -i "default"
2. 비디오 코덱 설정
-c:v libx264 -deinterlace -r 24 -s 1280x720 -b:v 1200k -minrate 1200k -maxrate 1200k -bufsize 1200k
-pix_fmt yuv420p -profile:v baseline -x264-params keyint=48:keyint_min=24:scenecut=0:bframes=0
3. 오디오 코덱 설정
-c:a libfdk_aac -b:a 128k -ar 44100
4. 컨테이너 형식 및 출력 방식 지정
-f flv rtmp://127.0.0.1:1935/live/movie
ex)
ffmpeg -f avfoundation -video_device_index 1 -audio_device_index 0 -i "default" \
-c:v libx264 -deinterlace -r 24 -s 1280x720 -b:v 1200k \
-minrate 1200k -maxrate 1200k -bufsize 1200k -pix_fmt yuv420p \
-profile:v baseline -x264-params keyint=48:keyint_min=24:scenecut=0:bframes=0 \
-c:a libfdk_aac -b:a 128k -ar 44100
-f flv rtmp://127.0.0.1:1935/live/movie
기타)
-video_deivce_index1 -autio_device_index 0 <==> -i "1:0"
-f mp4 test.mp4 : mp4 형식의 파일로 녹화파일 생성됨.
윈도우 환경에서는 dshow (DirectShow) 옵션을 이용해서 실행하면 되겠다.