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


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.