rtmpdump 프로세스의 출력을 ffmpeg로 파이핑하는 데 문제가 있습니다.이 프로세스는 rtmpdump의 출력을 훔치는 문제입니다.새로운 프로세스로 파이프 프로세스 출력
내 연구에서 cmd.exe 프로세스를 사용하고 rtmpdump.exe를/C 명령으로 실행하는 것에 대해 들어 봤지만이 문제는 해당 프로세스에서 생성 된 rtmpdump.exe 프로세스에 대한 참조가 손실됩니다. , 그리고 내 프로그램 내에서 여러 rtmpdump 프로세스를 관리 할 수 있어야하고 때로는 특정 프로세스를 선택적으로 종료 할 수 있어야합니다.
var p = new Process();
p.StartInfo.FileName = "rtmpdump.exe";
p.StartInfo.Arguments = "-v -r rtmp://somehost.com/app-name -o - | ffmpeg.exe -loglevel quiet -i - -c:v copy -c:a libvo_aacenc -b:a 128k \"test.mp4\"";
이 전혀 작동하지 않습니다
나는 처음에이 같은 간단한 뭔가를 시도했다. 초기 프로세스로 "cmd.exe를"을
:
var p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C rtmpdump.exe -v -r rtmp://somehost.com/app-name -o - | ffmpeg.exe -loglevel quiet -i - -c:v copy -c:a libvo_aacenc -b:a 128k \"test.mp4\"";
이 가까이 그것은 rtmpdump 프로세스를 시작 제가 필요에 저를 얻고는 FFmpeg로 리디렉션,하지만 지금은 "P"비 존재 "를 참조합니다 cmd.exe "프로세스가 rtmpdump를 시작하는 명령을 실행하면"cmd.exe "가 종료됩니다.
작성한 rtmpdump.exe 프로세스에 대한 참고 만하면됩니다. rtmpdump가 닫히면 ffmpeg가 자동으로 종료됩니다. 프로세스가 무시 될 수 있습니다.
편집 : 질문에 분명하지 않은 경우. rtmpdump의 출력을 ffmpeg로 파이프 처리하려고합니다. 명령 인수의 일부로이를 수행하는 정상적인 f}은 경로 재 지정 연산자를 사용하여 작동하지 않습니다. "cmd.exe"프로세스를 사용하면 필요에 따라 작동하지 않습니다.
정확히 무엇이 문제입니까? – DavidG
rtmpdump의 출력을 ffmpeg로 파이프하려고하는데, | 리디렉션 연산자가 프로세스 인수의 일부로 작동하지 않습니다. – m4tta
@ LittleBill902 어쨌든'taskkill/im "rtmpdump.exe"를 살인 프로세스로 시도 할 수 있습니다. 나는 PID를 얻고 그것을 사용하는 방법을 잘 모르겠다. – Keugyeol