FFmpegを使用してHttpLiveStreaming(HLS)に基づいてAndroidデバイスにウェブカメラをストリーミングしようとしています。 AndroidでMPEG-TSを再生するには、ExoPlayerを使用します。AndroidのExoPlayerまたはMacのQuicktimeを使用してWebカメラからMPEG-TSを再生できない
FFmpegのストリーミングコマンドは:私は、MPEG-TSを再生するためにVLCを使用する場合ffmpeg -f avfoundation -video_size 1280x720 -framerate 30 -i "0" -vcodec libx264 -preset veryfast -f flv rtmp://localhost:1935/hls/test
、すべてがOKでした。しかし、Androidの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の両方を使用して再生できます。
私はこれらの2例との間に見られる唯一の違いは、MP4ビデオがYUV420であり、彼らが異なるH264エンコーダを使用しながら、ウェブカメラのキャプチャフォーマットがYUY2であるということです。私はYUY2とYUV420のH264デコーダが同じではないと思います。
私の推論が正しかったかどうかわかりません。この問題の唯一の解決策は、ストリーミングする前にYUY2をYUV420に変換することです。
Macを使用している誰かが私と同じ方法でFacetimeカメラをストリーミングして、Safariで再生できるかどうかを確認してもらいたいと思います。