라이브 비디오 및 오디오 스트림을 병합하는 방법


0

다음과 같이 standardin을 통해 비트 맵의 ​​라이브 스트림을 ffmpeg로 보냅니다.

proc.StartInfo.Arguments = "-rtbufsize 1500M -f image2pipe -r 25 -i pipe:.bmp -vcodec libx264 -r 25 C:\\test.avi";

결과 비디오는 문제없이 저장하고 재생합니다.

비트 맵이 스트리밍되는 동안 오디오를 추가하고 싶기 때문에 다음과 같이 오디오를 단독으로 테스트했습니다.

proc.StartInfo.Arguments = "-rtbufsize 1500M -f dshow -i audio=" + '"' + "Stereo Mix (Realtek High Defini" + '"' + " -acodec pcm_s16le -ac 2 -ar 48000 C:\\test.wav";

오디오가 저장되고 잘 재생됩니다.

-vcodec copy -acodec copy를 사용하여 두 파일을 저장 한 후 나중에 결합 할 수 있습니다.

내 질문은 라이브 스트림이 즉시 생성 될 때 두 스트림을 병합하는 방법과 수행 방법에 관한 것입니다.

답변:


0

아래와 같이 결합 할 수 있습니다.

proc.StartInfo.Arguments = "-rtbufsize 1500M -f image2pipe -r 25 -i pipe:.bmp -rtbufsize 1500M -f dshow -i audio=" + '"' + "Stereo Mix (Realtek High Defini" + '"' + " -vcodec libx264 -r 25 -acodec pcm_s16le -ac 2 -ar 48000 C:\\test.avi";

VLC에서 재생할 때 비디오가 길이를 표시하지 않는 이유를 알고 있습니다. 나는 그것이 나의 끝에 무언가라고 확신합니다. 아마도 개울이 정상적으로 나가지 않을 것입니까?
AY125

AVI 대신 MOV에 저장해보십시오.
Gyan

@Mulvya에게 감사하지만 MOV 또는 다른 컨테이너에 저장해도 효과가 없습니다. 프레임 손실로 인해 결합 된 비디오가 동기화되지 않는 경우가 있습니다. -shortest를 추가하면 비디오가 올바른 길이의 비디오를 표시합니다. 비디오는 오디오보다 먼저 끝나기 때문에 오디오 길이를 말해야합니다. 그것은 지금 동기화하는 방법에 대한 질문이며 superuser.com 프로토콜에 따라 별도로 요청하는 것이 좋습니다.
AY125
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.