4

내 Node.js 앱은 FFmpeg를 사용하여 DirectShow 장치의 비디오를 캡처 한 다음 HLS (Live Streaming) 용 세그먼트를 출력합니다. 현재 세그먼트를 파일로 출력하고 있지만 파이프를 통해 출력 할 수 있다면 HTTP 서버를 호스팅하는 대신 websocket을 통해 효율적으로 세그먼트를 보낼 수 있습니다.FFmpeg를 사용하여 파이프를 통해 비디오 세그먼트 출력

내가이 명령을 사용하여 시도했다 :

는 FFmpeg -y -f dshow -i 영상이 FFsource : 오디오 = 스테레오 믹스 (Realtek의 높은 오디오) -vcodec libvpx -acodec을받는 libvorbis -threads 0 -b : V 3300K 5 150 150 -g -keyint_min -map 0 -flags -CPU 사용되는, V +를 global_header -f 세그먼트 -이 출력 파일 헤더를 쓸 수없는 오류 "를 제공하지만

# 0 (잘못된 코덱 매개 변수입니까?) : Muxer를 찾을 수 없습니다 ". 이 명령은 파일로 출력 할 때 작동합니다 ('-'를 'seg_ % 03d.webm'으로 바꿈).

FFmpeg는 세그먼트 비디오 용 파이프를 지원하지 않습니까? 아니면 명령에 문제가 있습니까? 감사.

+0

세그먼트 파일을 파이프에 출력한다는 것은 무엇을 의미합니까? – vipw

+0

해결책을 찾았습니까? – ESala

답변

0

ffmpeg -i pipe:0 pipe:1을 전달하면 stdin에서 읽을 수 있고 stdout으로 출력 할 수 있습니다.

당신은 내 프로젝트 중 하나에서 사용하는 예는 FFmpeg 래퍼 좀 걸릴 수 있습니다 : 네트워크에서 스트리밍 할 계획이라면

https://github.com/lperrin/node_airtunes/blob/master/examples/play_ffmpeg.js

, 당신은 어떤 점에서 원형 버퍼를해야 할 수도 있습니다. 당신이 잡을 수있는 프로젝트에 하나가 있습니다.

+1

'-'대신 'pipe : 1'을 사용하여 시도했지만 stdout으로 출력하려면 동일한 오류가 발생합니다. 'pipe : 1'을 사용하여 전체 파일을 출력해도 잘 작동하므로 세그먼트 화에만 문제가있는 것 같습니다. 어쨌든 고마워. –