본문 바로가기
PC

[#2 녹화하기] 스카이디지탈 캡쳐보드로 IPTV 녹화하기

by Text-Log 2024. 6. 10.
 

[#1 세팅 편] 스카이디지탈 캡쳐보드로 IPTV 녹화하기

준비물이다.1. (필수) 스카이디지탈 캡쳐보드, 캡쳐보드를 메인보드에 꽂을 수 있는 능력2. (선택 사항) HDMI 분배기, EDID 에뮬레이터 *어떨 때 쓰이는지는 후술할 예정 본인은 스카이디지탈의 슈

text-log.tistory.com

글을 읽기 전 #1 세팅하기 편을 읽고 오는 것을 추천한다.

 

 

먼저 알아둬야 할 것은 스카이디지탈 기본 캡쳐 프로그램은 전 포스팅에서 얘기했던 인터레이스 녹화를 지원하긴 한다. 하지만...

 

 

 

유일하게 MPEG2 코덱으로만 인터레이스 녹화가 가능하다. 구세대 코덱답게 용량 대비 화질이 매우 안 좋다는 단점을 가지고 있다. Mainconcept AVC/H.264 코덱을 별도로 설치하면 H264 코덱으로 녹화가 가능하지만 PC 사양이 충분한데도 불구하고 조금만 세팅을 무겁게 하면 녹화물에 프레임 드랍이 생긴다. 구글링을 해보니 같은 사례를 찾아볼 수 있었고 결론적으로 Mainconcept AVC/H.264 코덱 자체의 결함으로 보여진다. 기본 캡쳐 프로그램은 과감히 버리자.

 

 

 

 

Builds - CODEX FFMPEG @ gyan.dev

FFmpeg is a widely-used cross-platform multimedia framework which can process almost all common and many uncommon media formats. It has over 1000 internal components to capture, decode, encode, modify, combine, stream media, and it can make use of dozens o

www.gyan.dev

대신에 ffmpeg라는 프로그램으로 녹화를 할 것이다. 다운로드하자.

 

 

 

스크롤을 내려서 release builds로 이동 후 ffmpeg-git-essentials를 클릭한다. 7z와 zip 중에 아무거나 받으면 된다.

 

 

 

ffmpeg를 받았으면 원하는 곳에 압축을 풀고 bin 폴더로 들어가서 Shift+오른쪽 마우스를 클릭 후 여기에 PowerShell 창 열기를 누른다.

 

 

 

$currentTime = Get-Date -Format "yyMMdd_HHmmss"
$savePath = "녹화물이 저장될 원하는 경로"
$filename = Join-Path -Path $savePath -ChildPath "HDMI_$currentTime.ts"

& ".\ffmpeg.exe" -fflags +igndts -rtbufsize 1024M -f dshow -video_size 1920x1080 -framerate 29.97 -pixel_format yuyv422 -i video="사용 중인 캡쳐보드 제품명 (예시:SuperCast X 2k Capture)":audio="사용 중인 캡쳐보드 제품명" -vf "setfield=tff,scale=interl=1,format=yuv420p" -c:v libx264 -preset medium -crf 20 -maxrate 25M -bufsize 25M -c:a aac -b:a 384k -x264opts tff=1 -x264-params keyint=15:bframes=3:b-adapt=1 -max_muxing_queue_size 9999 $filename

그리고 다음과 같은 명령어를 입력하자. x264 옵션을 만질 줄 안다면 원하는 대로 수정해서 써도 된다. $savePath=에는 녹화물이 저장될 원하는 경로를 입력해준다. "사용 중인 캡쳐보드 제품명"에는 자신이 사용 중인 캡쳐보드 모델명을 적는다. 정확한 모델명을 확인하는 방법은 아래 사진을 참고하자. 각각 명령어들이 뭘 의미하는지는 코드 복사 후 챗GPT에게 던져주면 친절히 알려줄 것이다.

 

 

 

팟플레이어에서 Alt+D를 누르면 정확한 장치 이름을 알 수 있다.

 

 

 

명령어 입력 후 맨 밑에 frame=이라는 문구가 뜨면 녹화가 성공적으로 시작된 것이다.

 

 

 

만약 frame= 문구가 안 나오면 녹화가 제대로 안 되고 있는 것이다. 그럴 땐 기본 캡쳐 프로그램을 켰다가 바로 꺼주면 녹화가 시작된다. 이 현상이 왜 일어나는지는 모른다...

 

참고로 ffmpeg로 녹화할 땐 PC로는 모니터링을 할 수가 없다. 녹화 도중에 영상을 재생할 수 있긴 한데 안정적인 녹화물을 얻으려면 녹화 중엔 아무것도 건들지 않는 게 좋다.

 

그럼 즐거운 녹화 생활 되시길...