FFmpeg를 사용하여 EasyCAP STK1160에서 PAL-B 원시 비디오 및 스테레오 ALSA 사운드를 캡처하고보고 x264로 인코딩


1

Linux 에서 EasyCAP STK1160 으로 오래된 VHS 케이스 를 디지털화하고 싶습니다 . 복합 비디오 입력되고 /dev/video1, 그리고 hw:2,0그것 USB 복합 ALSA 2 채널 오디오이다.

원시 형식으로 스트림을 캡처하기 위해 다음을 사용합니다.

ffmpeg -f alsa -ac 2 -i hw:2,0 -f rawvideo -r 25 -s 720x576 -i /dev/video1 -codec:a pcm_s16le -codec:v rawvideo -f rawvideo raw_streams.raw

원시 파일을 두 단계로 h264로 인코딩하려면 다음을 사용하십시오.

time ffmpeg -f rawvideo -codec:v rawvideo -s:v 720x576 -r 25 -pix_fmt yuyv422 -deinterlace -i raw_streams.raw -pass 1 -codec:v libx264 -codec:a libfdk_aac -b:a 128k -preset ultrafast -y -b:v 6100k -f mp4 /dev/null
time ffmpeg -f rawvideo -codec:v rawvideo -s:v 720x576 -r 25 -pix_fmt yuyv422 -deinterlace -i raw_streams.raw -pass 2 -codec:v libx264 -codec:a libfdk_aac -b:a 128k -preset ultrafast -y -b:v 6100k -f mp4 "final.mp4"

질문 # 1 : 결과 인코딩 된 .mp4는 비디오는 좋지만 소리는 없습니다. 사운드 파일을 원시 파일에 추가 한 다음 mp4에 어떻게 추가합니까? 다음 명령을 사용하여 사운드 만 성공적으로 캡처하면 라인 입력에 사운드가 있음을 나타냅니다.

ffmpeg -f alsa -i hw:2,0 output.wav

질문 # 2 : PAL-B를 원본 비디오의 비디오 캡처 형식으로 지정하려면 어떻게합니까? man ffmpeg이 문제에 대한 정보가없는 것 같습니다.

질문 # 3 : 모든 카 제트가 전체 길이로 녹음 된 것은 아니기 때문에 캡처하는 동안 라이브 스트림을보고 멈춰야 할 시점을 알고 싶습니다. 나는 이것을 다음과 같이한다 :

mplayer -fps 25 tv:// -tv driver=v4l2:device=/dev/video1

스트림을 보거나 캡처합니다. 두 가지를 모두 시도하면 다음과 같은 오류가 발생합니다. /dev/video1: Device or resource busy이러한 작업을 동시에 수행하려면 어떻게해야합니까?

답변:


1

# 1 원시 비디오 스트림에 저장 중이므로 오디오가 저장되지 않습니다. NUT와 같은 컨테이너에 저장해야합니다.

ffmpeg -f rawvideo -framerate 25 -s 720x576 -i /dev/video1 -f alsa -ac 2 -i hw:2,0
       -c:a pcm_s16le -c:v rawvideo raw.nut

# 2 캡처 장치의 드라이버 / 구성에서 설정해야합니다. FFmpeg가 USB 장치에서 디지털화 된 원시 비디오 스트림을 수신 중입니다. 구체적으로 어떤 속성을 설정해야합니까? 모든 PAL 변형은 프레임 크기와 속도를 공유합니다.

# 3 티 멀티플렉서를 사용하여 캡처를 ffplay로 파이프 할 수 있습니다

ffmpeg -f rawvideo -framerate 25 -s 720x576 -i /dev/video1 -f alsa -ac 2 -i hw:2,0
       -c:a pcm_s16le -c:v rawvideo -f tee "raw.nut|[f=nut]pipe:" | ffplay -f nut -
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.