
FFMPEG를 사용하여 로컬 웹캠을 스트리밍하려고 합니다. 테스트 목적으로 이 작업을 로컬에서 수행하고 VLC(3.0.8, Windows 10)를 사용하여 스트림을 열려고 합니다. FFMPEG에서 스트리밍하는 방법은 다음과 같습니다.
ffmpeg -f dshow -i video="Microsoft Camera Front" -preset fast -s 1280x720
-vcodec libx264 -tune ssim -b 500k -f mpegts udp://127.0.0.1:1234
다음을 사용하여 스트림을 원활하게 재생할 수 있습니다.
ffplay udp://127.0.0.1:1234
그러나 VLC를 사용하여 이 작업을 수행할 수 없습니다. "네트워크 스트림 열기"를 클릭하고 udp://127.0.0.1:1234
또는 udp://@:127.0.0.1:1234
같은 다른 형식을 시도했습니다 udp://@:1234
. 후자를 사용하면 스트림을 열 수 있지만 비디오는 표시되지 않습니다. 하지만 코덱 정보 창에서는 올바른 코덱(코덱: H264 - MPEG-4 AVC(part 10)(h264)을 감지하는 것까지 보입니다. 통계 창에서는 다음과 같은 비트 전송률로 데이터를 수신하는 것으로 나타났습니다. 40kb/s 및 100kb/s. ~560kbit/s로 스트리밍한다는 점을 고려하면 그럴듯해 보입니다.
그래서 영상이 안 나오는 것 같습니다. Windows 10이 설치된 다른 PC에서도 같은 현상이 발생합니다. 무엇이 잘못되었는지 아시나요? 어떤 힌트라도 미리 감사드립니다!
답변1
서버(ffmpeg)와 클라이언트(vlc) 측 모두에 패킷 크기를 추가합니다.
ffmpeg에서:
>ffmpeg -re -i "path/to/my/video.mp4" -vcodec libx264 -f mpegts udp://127.0.0.1:1234?pkt_size=1316
vlc에서:
>udp://127.0.0.1:1234?pkt_size=1316
답변2
VLC에서는 이 작업을 수행하려면 "@" 기호가 필요합니다.
UDP://@127.0.0.1:1234?pkt_size=1316