Freeswitch视频会议功能手机客户端横屏模式

    手机客户端的视频可以变化方向,在3gpp协议中定义了rtp协议支持这种模式,抓包分析如下图:

Freeswitch视频会议功能手机客户端横屏模式

Extension为true是表示支持客户端传来的视频包包含方向,具体方向在Header extensions中的Extension Data描述。协议规定如果Extension为true则rtp包头长度为18个字节,如果为false包头长度为12个字节。

在freeswitch中conference_video.c实现了视频方向变换的功能,具体代码是switch_img_rotate_copy(frame->img, &img_copy, member->flip);所以在conference_video_thread_callback函数中判断rtp包头的最后一位方向设置member->flip就可以实现自适应视频方向功能了。