FFmpeg를 사용하여 HttpLiveStreaming (HLS)을 기반으로 Android 기기로 웹캠을 스트리밍하려고합니다. Android에서 MPEG-TS를 재생하려면 ExoPlayer를 사용합니다.Android 또는 Mac의 Quicktime에서 ExoPlayer를 사용하여 웹캠에서 MPEG-TS를 재생할 수 없음
는 FFmpeg 스트리밍 명령 : I는 MPEG-TS를 재생 VLC를 사용하는 경우 ffmpeg -f avfoundation -video_size 1280x720 -framerate 30 -i "0" -vcodec libx264 -preset veryfast -f flv rtmp://localhost:1935/hls/test
, 모든 확인했다. 그러나 안드로이드에서는 ExoPlayer를, Mac OS에서는 Quicktime (Safari)을 사용하여 재생하지 못했습니다. 그런 다음 그 이유를 찾으려고 노력했습니다.
같은 방식으로 FFmpeg를 사용하여 mp4 비디오를 스트리밍하려고했습니다. 예 : ffmpeg -re -i test.mp4 -vcodec libx264 -preset veryfast -f flv rtmp://localhost:1935/hls/test
ExoPlayer와 Quicktime을 모두 사용하여 재생할 수 있습니다.
나는이 이가지 경우 사이에서 발견 유일한 차이점은 MP4 비디오는 YUV420하고 서로 다른 H264 인코더을 사용하는 동안 웹캠의 캡처 형식 YUY2는 것입니다. YUY2와 YUV420 용 H264 디코더는 같지 않습니다.
내 추론이 정확했는지,이 문제를 해결할 수있는 유일한 방법은 스트리밍 전에 YUY2를 YUV420으로 변환하는 것입니다.
Mac을 사용하는 누군가가 나와 같은 방식으로 Facetime 카메라를 스트리밍하여 Safari에서 재생할 수 있는지 알아볼 수 있기를 바랍니다.