ビデオをネットワーク経由で再生するときに必要な帯域幅の変動を測定しようとしています。この目的のために、ビデオ中の任意の時点でビデオを連続して再生するために必要な帯域幅のグラフを作成する必要があります。
gstreamer でビデオを処理しようとしましたが、デコードされた [エンコードされていない] ビデオのビット レートはほぼ一定です。
ビデオのエンコードされたビット レートを経時的に取得する方法はありますか?
ビデオをネットワーク経由で再生するときに必要な帯域幅の変動を測定しようとしています。この目的のために、ビデオ中の任意の時点でビデオを連続して再生するために必要な帯域幅のグラフを作成する必要があります。
gstreamer でビデオを処理しようとしましたが、デコードされた [エンコードされていない] ビデオのビット レートはほぼ一定です。
ビデオのエンコードされたビット レートを経時的に取得する方法はありますか?
ここでは答えが得られなかったので、自分で見つけた解決策を投稿して、他の人に役立つようにします。
Vlc python バインディングは、python api を vlc メディア プレーヤーに公開します。また、動画の統計を判断するために使用できる MediaStats クラスも提供します。
class MediaStats(_Cstruct):
_fields_ = [
('read_bytes', ctypes.c_int ),
('input_bitrate', ctypes.c_float),
('demux_read_bytes', ctypes.c_int ),
('demux_bitrate', ctypes.c_float),
('demux_corrupted', ctypes.c_int ),
('demux_discontinuity', ctypes.c_int ),
('decoded_video', ctypes.c_int ),
('decoded_audio', ctypes.c_int ),
('displayed_pictures', ctypes.c_int ),
('lost_pictures', ctypes.c_int ),
('played_abuffers', ctypes.c_int ),
('lost_abuffers', ctypes.c_int ),
('sent_packets', ctypes.c_int ),
('sent_bytes', ctypes.c_int ),
('send_bitrate', ctypes.c_float),
]