FFMPEG에서 VLC로 비디오 스트림을 재생할 수 없습니다.

FFMPEG에서 VLC로 비디오 스트림을 재생할 수 없습니다.

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

관련 정보