merge_pip_readme.txt
6.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
merge_pip version 2.0
读入合屏信息文件,合成画中画视频。
使用方法:
merge_pip merge_info.txt [-t {0,1,2}] [-c codec.cfg] [-s {1,0}]
其中merge_info.txt为合屏信息文件,格式如下:
teacher:
uid_110214282_20181112142029090.txt
uid_195577208_20181112140006405.txt
student:
uid_811811528_20181112133359283.txt
uid_815143046_20181112134420113.txt
uid_841249649_20181112142641274.txt
uid_859282931_20181112133025710.txt
uid_890164961_20181112134518546.txt
uid_892847453_20181112134940409.txt
teacher:下面是老师的录像信息文件,一个文件名一行
student:下面是学生的录像信息文件,一个文件名一行
目前有两种合屏布局,一种是320X480的上下布局,用于一个老师一个学生的场景。
另一种是320X240的分辨率,老师全屏,学生缩小后裁剪为72X72分辨率的图像依次以画中画方式在屏幕下方由右向左排列。
此版本所有编码及布局参数在程序中预先设置,暂不支持配置。
-t 为可选参数,后面必须跟0,1,或2。
0 为由程序自动选择合屏布局(目前根据录像信息文件里音频的起止时间,确定最多同时出现的人员数量,如果为2,则选用1对1布局).
1 为使用一对一布局
2 为使用一对多布局,每排4个学生,由下向上排布
3 为使用一对多布局,最多只在老师视频下部排4个学生,多于4个学生的情况,扩大合成视频的高度,把学生视频排列在老师视频下方,保证老师视频部分最多只有一排学生视频,避免老师视频被过度遮挡
如果不加-t,则为程序自动选择合屏布局
-c 为可选参数,后面为编码配置文件名。缺省的编码配置文件名为merge_pip_codec.cfg。配置文件与merge_pip可执行文件在同一目录。
merge_pip_codec.cfg主要编码参数:
#帧率
fps = 20
#关键帧间隔,默认与fps一致,即每秒一个关键帧
gop_size = 20
#视频码率
bit_rate = 256000
#视频预设值编码参数: ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo
preset = ultrafast
#音频采样率
a_sample_rate = 48000
#音频码率
a_bit_rate = 64000
-s 为可选参数。缺省为1
1 在一对一时, 如果老师和学生的视频大小不一致,会放大较小的视频使得老师和学生视频大小相同。在一对多时,如果老师视频由多段不同分辨率视频组成,会对老师视频进行缩放统一
0 保持原有视频大小
-r 为可选参数。缺省为0
0 视频保持原有宽高比缩放后,宽或高与目标区域相同,完整视频放置在目标区域,上下或左右填充背景色
1 视频保持原有宽高比缩放后,宽或高与目标区域相同,裁剪上下或左右,铺满目标区域
-k 为可选参数。缺省为1
0 1对多时,合成的视频大小为老师原始视频大小
1 1对多时,合成的视频保持4:3的宽高比
合屏后生成完成信息文件,文件名为"m_" + 输入文件名" + ".txt",合成的mp4文件名为"m_" + 输入文件名" + ".mp4"
如merge_pip 1.txt
生成的完成信息文件是m_1.txt,m_1.txt只有一行,记录输出的mp4文件名(m_1.mp4)、参与合成m_1.mp4的第一个媒体文件名(用于帮助确认m_1.mp4的开始时间)及mp4的时长。下面是一个实际的m_1.txt内容:
m_1.mp4 859282931_20181112133025316.mp4 3397.150
V2.0.1
1.修改bug: 复制缩小后的视频时,U、V分量x偏移不正确
V2.0.2
1.修改学生视频为320x240,老师的视频为240x180时,老师背景有花屏
2.修改老师和学生视频都为240x180视频时,视频宽度仍为240(由于之前假定只有320x240的视频尺寸), 且有花屏
3.只有一路视频时,默认合成为上下布局
V2.0.3
1.没有老师,但是有两个学生时,默认使用一对多布局
2.一对一时,老师和学生的视频尺寸不同时,合成的视频高度取老师视频高度加上学生视频高度(之前版本假定老师和学生视频大小一致,使用的是最大高度的二倍)
3.一对多时,支持学生的视频尺寸不一致的情况(之前版本假定只有一种视频尺寸,其它尺寸视为异常)
4.一对多时,最多只在老师视频下部排4个学生,多于4个学生的情况,扩大合成视频的高度,把学生视频排列在老师视频下方,保证老师视频部分最多只有一排学生视频,避免老师视频被过度遮挡
V2.0.4
1.支持读取编码配置文件,用于改变编码配置
V2.0.5
1.在录像信息文件里没有老师视频或学生视频时,把老师视频或学生视频的大小设为320x240,避免在一对多布局时出现错误
V2.0.6
1. 命令行添加-s可选参数,在一对一布局下起作用。缺省为1
1 如果老师和学生的视频大小不一致,会放大较小的视频使得老师和学生视频大小相同
0 保持原有视频大小
V2.0.7
1.修改bug: 在V2.0.4开放了设置视频编码参数,由于修改不完整,其中fps设置如果不是默认的参数20,会导致音视频不同步
2.修改在一对一布局下,有一个视频是竖屏时,对竖屏的缩放处理不正常
V2.0.8
1.修改在一对一布局下,有学生或老师视频需要缩放时,如果学生或老师有多个段,会出现程序异常
2.修改在一对一布局下,不需要缩放时,学生视频如果宽度小于输出视频宽度,输出视频有部分背景花屏
V2.0.9
1.忽略录像信息文件里在视频文件关闭后设置视频旋转角度的情况,避免视频旋转角度错误
V2.0.10
1.修改一对多布局时,老师视频由多段不同分辨率视频组成时,会出现程序异常的问题
2.一对多布局时,支持对不同分辨率的老师视频进行缩放,统一到相同分辨率
V2.0.11
1.修改1对多布局时,缺省不扩大合成视频大小,-t 3参数时才根据学生数量扩大合成视频大小
V2.0.12
1.在一对一时,强制老师和学生的视频大小一致,且宽高比均为4:3,当不为4:3时,保持视频原始宽高比,水平或垂直居中
V2.0.13
1.命令行增加可选参数-r {0|1},控制视频缩放后是否裁剪以适应目标区域
2.命令行增加可选参数-k {0|1},控制一对多时合成的视频是否保持4:3宽高比
V2.0.14
1.命令行增加可选参数-v {1|0},在所有输入媒体文件里,没有视频文件时,使用-v 1 参数合成的mp4文件仍然包含视频,-v 0则不含视频
V2.0.15
1.修改bug: 解码视频文件时,遇到解码错误,直接退出了解码。现改为继续解码后续数据。