ffmpeg 스트리밍에 대한 문의입니다.
안녕하세요.
현재 하나의 PC(로컬호스트)에서 ffmpeg 스트리밍 1, ffmpeg 스트리밍 2
즉 두개의 스트리밍 서버가 실행되는 중입니다.
문제는 ffplay를 이용해 각각 영상을 스트리밍 해보려고 하는대
ffmpeg만 두영상 스트리밍이 되지 않네요.
각각 사용된 명령문은 다음과 같습니다.
스트리밍1
ffmpeg -f dshow -i video="AVerMedia HD Capture 1" -s 1600x900 -r 50 -vcodec mpeg2video -b:v 8000 -f rtp rtp://127.0.0.1:5544
스트리밍2
ffmpeg -f dshow -i video="AVerMedia HD Capture 2" -s 1600x900 -r 50 -vcodec mpeg2video -b:v 8000 -f rtp rtp://127.0.0.1:5545
다른건 디바이스명과 포트번호 뿐입니다.
플레이는 각각 이렇게 했습니다.
플레이1
ffplay rtp://127.0.0.1:5544
플레이2
ffplay rtp://127.0.0.1:5545
포트번호만 다르게 접근했습니다.
하지만 다음과 같은 에러가 발생하는군요.
[udp @ 0000000002f8eec0] bind failed: Error number -10048 occurred
rtp://127.0.0.1:5545: Input/output error
확인해 본 결과
VLC 플레이어로 각각 주소로 스트리밍 해봤을땐 두 영상이 잘 잡힙니다.
ffmpeg만 하나의 PC에서 두개이상의 영상을 스트리밍 못하는 것 같네요.
문제에 대해 알것 같으신 분이 계신다면 조언을 요청드립니다.
윈도우 환경인가요? 10048 에러는 이미 사용중인
윈도우 환경인가요?
10048 에러는 이미 사용중인 포트에 서버를 열려고 시도할 경우 발생합니다. ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms740668(v=vs.85).aspx )
가능성은 세 가지가 떠오르는데,
첫번째는 이전에 실행한 ffmpeg가 사용한 포트를 아직 완전히 안 닫은 상태에서 다시 같은 포트로 서버를 실행했을 때.
두번째는 5544 포트로 실행한 ffmpeg가 실제로는 5544, 5545등 다수의 포트를 사용하는 경우.
세번째는 이미 너무 많은 서버가 실행 중이여서 OS에서 사용 가능한 포트 갯수를 초과한 경우.
포트 번호를 계속 바꿔가면서 실행하거나, 스트리밍1, 2간의 포트 번호 간격을 늘려보세요.
친절한 답변 감사드립니다.
말씀해주신 대로 포트간격을 3000정도 차이로 늘려서 확인해보니 정상 작동 되네요.
어느정도 간격까지 허용치인진 아직 잘 모르겠으나 급한대로 되서 너무나 감사드립니다.
하지만 이해가 안가긴 하네요
설명해주신 내용중 두번째 내용이 가장 의심가긴 하지만 좀더 찾아봐야겠습니다.
다시한번 정말 감사드립니다!
댓글 달기