見出し画像

ライブ配信(続き2)

NDI5-Advanced SDKを利用したスマホカメラアプリの開発に着手するも、MPEG, H.264, HEVC のエンジニアがいないこともあり、当初は暗中模索でしたが、昔からのお付き合いして貰っていた福岡のU社さんのSさんに協力をお願いして、この映像・デジタル技術を紐解くことが始まりました。

i-frame, p-frame, b-frame の組み合わせ方や、bフレームは必要か・不要かなどから模索が始まりました。基本的なことはSDKなどのマニュアルに記載はあるのですが、その通りに組み立てても、macでは大丈夫だが、Windowsでは映像が出ないなど、やはりosによる癖もあるようで、四苦八苦。
結果ExtraData(SPS,PPS)の置き方などの工夫で解決することもあり、やはりmacでは再現するがwindowsではトラブルが起きるなどそれぞれの置き方には工夫がいるのだと実感。

次に試行錯誤をしたことが、遅延を小さくすることでした。
全てのフレームをi-frameにすると演算が少なくなる?ことから遅延は減少することが理屈上も現実も起こったのですが、all i-frameですとJPEGがパラパラと全て送られてくるというもので、、ある特定の画面では画質に問題が出ることなどがわかり、、結果i-frameは無難な15, 30, 60, 120, 240フレームなどで対応することになりました。。(NDIとSRTでは別のフレーム数ですが)

試行錯誤の結果、画像のようにBirddog/MagewellのNDIエンコーダーとほぼ同一の遅延(動悸が取れている状態)でのLM-Camでの伝送を実現。この段階ではNDI-HXですが、H.264ベースでのエンコードを利用。

その後、HEVC化にも対応し、更なる遅延の圧縮を実現しています。
ただ、ここまで来るのに半年以上の時間が経過。



この記事が気に入ったらサポートをしてみませんか?