CN115174994A - 视频处理方法、装置、计算机设备及存储介质 - Google Patents
视频处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115174994A CN115174994A CN202110357629.1A CN202110357629A CN115174994A CN 115174994 A CN115174994 A CN 115174994A CN 202110357629 A CN202110357629 A CN 202110357629A CN 115174994 A CN115174994 A CN 115174994A
- Authority
- CN
- China
- Prior art keywords
- target
- video frame
- video
- height
- width
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000012545 processing Methods 0.000 title claims description 35
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 18
- 230000000694 effects Effects 0.000 abstract description 19
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440263—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
- H04N21/440272—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA for performing aspect ratio conversion
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例公开了一种视频处理方法、装置、计算机设备及存储介质,属于计算机技术领域。该方法包括:获取原始视频,基于原始视频中的至少一个原始视频帧的宽度和高度确定目标比例,目标比例大于0且小于1;对原始视频中的第一视频帧进行裁剪,得到目标视频,以使目标视频中的每个视频帧满足目标条件,目标条件为视频帧的宽度与高度之间的比例为目标比例;向接收端设备发送目标视频。对原始视频中的第一视频帧进行裁剪得到的目标视频中,每个视频帧的宽度与高度之间的比例小于1,因此目标视频中的视频帧均为竖屏视频帧,在原始视频中包括横屏视频帧时,能够避免接收端设备不支持播放横屏视频帧而影响视频播放的情况,提高了视频播放的效果。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种视频处理方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术和互联网技术的飞速发展,观看直播视频或者进行视频通话等成为人们在生活、学习和工作中常见的操作,这类操作均需要进行视频的传输,通常会由发送端设备采集视频,将视频发送给接收端设备,由接收端设备进行播放。
相关技术中,发送端设备向接收端设备发送采集到的视频,接收端设备播放该视频。其中,发送端设备处于竖屏状态时,视频中包括竖屏视频帧,发送端设备处于横屏状态时,视频中包括横屏视频帧。但是如果接收端设备不支持播放横屏视频帧,则接收端设备会出现花屏或者黑屏等问题,影响播放效果。
发明内容
本申请实施例提供了一种视频处理方法、装置、计算机设备及存储介质,能够提高视频播放的效果。所述技术方案如下:
一方面,提供了一种视频处理方法,所述方法包括:
获取原始视频,所述原始视频中包括多个原始视频帧;
基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,所述目标比例大于0且小于1;
对所述原始视频中的第一视频帧进行裁剪,得到目标视频,以使所述目标视频中的每个视频帧满足目标条件,所述第一视频帧为不满足所述目标条件的原始视频帧,所述目标条件为视频帧的宽度与高度之间的比例为所述目标比例;
向接收端设备发送目标视频,所述接收端设备用于播放所述目标视频。
可选地,所述基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,包括:
响应于当前设备从竖屏状态切换至横屏状态,基于当前采集的原始视频帧的宽度和高度,确定所述目标比例;或者,
响应于所述当前设备从所述横屏状态切换至所述竖屏状态,基于当前采集的原始视频帧的宽度和高度,确定所述目标比例。
可选地,所述基于所述原点、所述目标宽度以及所述目标高度,在所述第一视频帧中确定所述目标区域,包括:
在所述第一视频帧中,确定与所述原点之间的水平距离为所述目标宽度、且与所述原点之间的竖直距离为0的第五关键点;
在所述第一视频帧中,确定与所述原点之间的竖直距离为所述目标高度、且与所述原点之间的水平距离为0的第六关键点;
在所述第一视频帧中,确定与所述原点之间的水平距离为所述目标宽度、且与所述原点之间的竖直距离为所述目标高度的第七关键点;
将所述原点、所述第五关键点、所述第六关键点和所述第七关键点构成的区域,确定为所述目标区域。
另一方面,提供了一种视频处理方法,所述方法包括:
获取原始视频,所述原始视频中包括多个原始视频帧;
基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,所述目标比例大于0且小于1;
对所述原始视频中的横屏视频帧进行裁剪,得到所述横屏视频帧对应的目标视频帧,以使所述目标视频帧的宽度与所述目标视频帧的高度之间的比例为所述目标比例;
向接收端设备发送目标视频,所述目标视频包括所述目标视频帧,所述接收端设备用于播放所述目标视频。
可选地,所述按照所述目标高度和所述目标宽度,在所述横屏视频帧中确定目标区域,包括:
在所述横屏视频帧中建立坐标系,所述坐标系的原点为所述横屏视频帧的四个顶点中的其中一个;
基于所述原点、所述目标宽度以及所述目标高度,在所述横屏视频帧中确定所述目标区域。
可选地,所述基于所述原点、所述目标宽度以及所述目标高度,在所述横屏视频帧中确定所述目标区域,包括:
在所述横屏视频帧中,确定与所述原点之间的水平距离为第一差值、且与所述原点之间的竖直距离为第二差值的第一关键点,所述第一差值为基于所述横屏视频帧的宽度与所述目标宽度之间的差值确定的,所述第二差值为基于所述横屏视频帧的高度与所述目标高度之间的差值确定的;
在所述横屏视频帧中,确定与所述第一关键点之间的水平距离为所述目标宽度、且与所述第一关键点之间的竖直距离为0的第二关键点;
在所述横屏视频帧中,确定与所述第一关键点之间的竖直距离为所述目标高度、且与所述第一关键点之间的水平距离为0的第三关键点;
在所述横屏视频帧中,确定与所述第一关键点之间的水平距离为所述目标宽度、且与所述第一关键点之间的竖直距离为所述目标高度的第四关键点;
将所述第一关键点、所述第二关键点、所述第三关键点和所述第四关键点构成的区域,确定为所述目标区域。
可选地,所述基于所述原点、所述目标宽度以及所述目标高度,在所述横屏视频帧中确定所述目标区域,包括:
在所述横屏视频帧中,确定与所述原点之间的水平距离为所述目标宽度、且与所述原点之间的竖直距离为0的第五关键点;
在所述横屏视频帧中,确定与所述原点之间的竖直距离为所述目标高度、且与所述原点之间的水平距离为0的第六关键点;
在所述横屏视频帧中,确定与所述原点之间的水平距离为所述目标宽度、且与所述原点之间的竖直距离为所述目标高度的第七关键点;
将所述原点、所述第五关键点、所述第六关键点和所述第七关键点构成的区域,确定为所述目标区域。
可选地,所述获取原始视频,包括:
通过直播应用客户端采集所述原始视频;
所述向接收端设备发送目标视频,包括:
确定当前登录的主播标识对应的直播间中的至少一个观众标识;
向所述至少一个观众标识对应的接收端设备发送所述目标视频。
另一方面,提供了一种视频处理装置,所述装置包括:
视频获取模块,用于获取原始视频,所述原始视频中包括多个原始视频帧;
比例确定模块,用于基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,所述目标比例大于0且小于1;
裁剪模块,用于对所述原始视频中的第一视频帧进行裁剪,得到目标视频,以使所述目标视频中的每个视频帧满足目标条件,所述第一视频帧为不满足所述目标条件的原始视频帧,所述目标条件为视频帧的宽度与高度之间的比例为所述目标比例;
视频发送模块,用于向接收端设备发送目标视频,所述接收端设备用于播放所述目标视频。
可选地,所述比例确定模块,包括:
比例获取单元,用于获取参考视频帧的高度与宽度之间的第一比例,以及所述参考视频帧的宽度与高度之间的第二比例,所述参考视频帧为所述多个原始视频帧中的任意一个;
第一比例确定单元,用于将所述第一比例和所述第二比例中小于1的比例,确定为所述目标比例。
可选地,所述装置还包括:
高度确定模块,用于获取参考视频帧的高度和宽度,所述参考视频帧为所述多个原始视频帧中的任意一个;基于所述参考视频帧的高度和宽度中的最小值确定目标高度,所述目标高度不大于所述最小值;
宽度确定模块,用于确定目标宽度,所述目标宽度与所述目标高度之间的比例为所述目标比例;
所述裁剪模块,包括:
区域确定单元,用于按照所述目标高度和所述目标宽度,在所述第一视频帧中确定目标区域;
第一裁剪单元,用于将所述第一视频帧中的目标区域进行裁剪,得到所述目标视频。
可选地,所述比例确定模块,包括:
第二比例确定单元,用于响应于当前设备从竖屏状态切换至横屏状态,基于当前采集的原始视频帧的宽度和高度,确定所述目标比例;或者,
所述第二比例确定单元,用于响应于所述当前设备从所述横屏状态切换至所述竖屏状态,基于当前采集的原始视频帧的宽度和高度,确定所述目标比例。
可选地,所述区域确定单元,用于:
在所述第一视频帧中建立坐标系,所述坐标系的原点为所述第一视频帧的四个顶点中的其中一个;
基于所述原点、所述目标宽度以及所述目标高度,在所述第一视频帧中确定所述目标区域。
可选地,所述区域确定单元,用于:
在所述第一视频帧中,确定与所述原点之间的水平距离为第一差值、且与所述原点之间的竖直距离为第二差值的第一关键点,所述第一差值为基于所述第一视频帧的宽度与所述目标宽度之间的差值确定的,所述第二差值为基于所述第一视频帧的高度与所述目标高度之间的差值确定的;
在所述第一视频帧中,确定与所述第一关键点之间的水平距离为所述目标宽度、且与所述第一关键点之间的竖直距离为0的第二关键点;
在所述第一视频帧中,确定与所述第一关键点之间的竖直距离为所述目标高度、且与所述第一关键点之间的水平距离为0的第三关键点;
在所述第一视频帧中,确定与所述第一关键点之间的水平距离为所述目标宽度、且与所述第一关键点之间的竖直距离为所述目标高度的第四关键点;
将所述第一关键点、所述第二关键点、所述第三关键点和所述第四关键点构成的区域,确定为所述目标区域。
可选地,所述区域确定单元,用于:
在所述第一视频帧中,确定与所述原点之间的水平距离为所述目标宽度、且与所述原点之间的竖直距离为0的第五关键点;
在所述第一视频帧中,确定与所述原点之间的竖直距离为所述目标高度、且与所述原点之间的水平距离为0的第六关键点;
在所述第一视频帧中,确定与所述原点之间的水平距离为所述目标宽度、且与所述原点之间的竖直距离为所述目标高度的第七关键点;
将所述原点、所述第五关键点、所述第六关键点和所述第七关键点构成的区域,确定为所述目标区域。
可选地,所述裁剪模块,包括:
第二裁剪单元,用于对所述第一视频帧进行裁剪,得到第二视频帧,以使所述第二视频帧的宽度与所述第二视频帧的高度之间的比例为所述目标比例;
尺寸放大单元,用于将所述第二视频帧的尺寸放大至所述目标尺寸,得到所述目标视频;或者,
所述尺寸放大单元,用于将所述第二视频帧的高度放大至与任一原始视频帧的宽度和高度中的最大值相同,将所述第二视频帧的宽度放大至与所述任一原始视频帧的宽度和高度中的最小值相同,得到所述目标视频。
可选地,所述视频获取模块,用于通过直播应用客户端采集所述原始视频;
所述视频发送模块,包括:
标识确定单元,用于确定当前登录的主播标识对应的直播间中的至少一个观众标识;
视频发送单元,用于向所述至少一个观众标识对应的接收端设备发送所述目标视频。
另一方面,提供了一种视频处理装置,所述装置包括:
视频获取模块,用于获取原始视频,所述原始视频中包括多个原始视频帧;
比例确定模块,用于基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,所述目标比例大于0且小于1;
裁剪模块,用于对所述原始视频中的横屏视频帧进行裁剪,得到所述横屏视频帧对应的目标视频帧,以使所述目标视频帧的宽度与所述目标视频帧的高度之间的比例为所述目标比例;
视频发送模块,用于向接收端设备发送目标视频,所述目标视频包括所述目标视频帧,所述接收端设备用于播放所述目标视频。
可选地,所述比例确定模块,包括:
比例获取单元,用于获取参考视频帧的高度与宽度之间的第一比例,以及所述参考视频帧的宽度与高度之间的第二比例,所述参考视频帧为所述多个原始视频帧中的任意一个;
比例确定单元,用于将所述第一比例和所述第二比例中小于1的比例,确定为所述目标比例。
可选地,所述装置还包括:
高度确定模块,用于基于所述横屏视频帧的高度确定目标高度,所述目标高度不大于所述横屏视频帧的高度;
宽度确定模块,用于确定目标宽度,所述目标宽度与所述目标高度之间的比例为所述目标比例;
所述裁剪模块,包括:
区域确定单元,用于按照所述目标高度和所述目标宽度,在所述横屏视频帧中确定目标区域;
第一裁剪单元,用于将所述横屏视频帧中的所述目标区域进行裁剪,得到所述目标视频帧。
可选地,所述区域确定单元,用于:
在所述横屏视频帧中建立坐标系,所述坐标系的原点为所述横屏视频帧的四个顶点中的其中一个;
基于所述原点、所述目标宽度以及所述目标高度,在所述横屏视频帧中确定所述目标区域。
可选地,所述区域确定单元,用于:
在所述横屏视频帧中,确定与所述原点之间的水平距离为第一差值、且与所述原点之间的竖直距离为第二差值的第一关键点,所述第一差值为基于所述横屏视频帧的宽度与所述目标宽度之间的差值确定的,所述第二差值为基于所述横屏视频帧的高度与所述目标高度之间的差值确定的;
在所述横屏视频帧中,确定与所述第一关键点之间的水平距离为所述目标宽度、且与所述第一关键点之间的竖直距离为0的第二关键点;
在所述横屏视频帧中,确定与所述第一关键点之间的竖直距离为所述目标高度、且与所述第一关键点之间的水平距离为0的第三关键点;
在所述横屏视频帧中,确定与所述第一关键点之间的水平距离为所述目标宽度、且与所述第一关键点之间的竖直距离为所述目标高度的第四关键点;
将所述第一关键点、所述第二关键点、所述第三关键点和所述第四关键点构成的区域,确定为所述目标区域。
可选地,所述区域确定单元,用于:
在所述横屏视频帧中,确定与所述原点之间的水平距离为所述目标宽度、且与所述原点之间的竖直距离为0的第五关键点;
在所述横屏视频帧中,确定与所述原点之间的竖直距离为所述目标高度、且与所述原点之间的水平距离为0的第六关键点;
在所述横屏视频帧中,确定与所述原点之间的水平距离为所述目标宽度、且与所述原点之间的竖直距离为所述目标高度的第七关键点;
将所述原点、所述第五关键点、所述第六关键点和所述第七关键点构成的区域,确定为所述目标区域。
可选地,所述裁剪模块,包括:
第二裁剪单元,用于对所述横屏视频帧进行裁剪,得到第二视频帧,以使所述第二视频帧的宽度与所述第二视频帧的高度之间的比例为所述目标比例;
尺寸放大单元,用于将所述第二视频帧的尺寸放大至目标尺寸,得到所述目标视频帧;或者,
所述尺寸放大单元,还用于将所述第二视频帧的高度放大至与所述横屏视频帧的宽度相同,将所述第二视频帧的宽度放大至与所述横屏视频帧的高度相同,得到所述目标视频帧。
可选地,所述视频获取模块,用于通过直播应用客户端采集所述原始视频;
所述视频发送模块,包括:
标识确定单元,用于确定当前登录的主播标识对应的直播间中的至少一个观众标识;
视频发送单元,用于向所述至少一个观众标识对应的接收端设备发送所述目标视频。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如上述方面所述的视频处理方法中所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现如上述方面所述的视频处理方法中所执行的操作。
另一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机程序代码,所述计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取所述计算机程序代码,处理器执行所述计算机程序代码,使得所述计算机设备实现如上述方面所述的视频处理方法中所执行的操作。
本申请实施例提供的方法、装置、计算机设备及存储介质,对原始视频中的第一视频帧进行裁剪得到目标视频,由于目标视频中的每个视频帧的宽度与高度之间的比例均小于1,因此目标视频中的视频帧均为竖屏视频帧,也即是实现了将原始视频中的视频帧转换为竖屏视频帧,并发送给接收端设备进行播放,因此在原始视频中包括横屏视频帧时,能够避免接收端设备不支持播放横屏视频帧而影响视频播放的情况,提高了视频播放的效果。
并且,因此无论采集的原始视频帧为横屏视频帧还是竖屏视频帧,都能够裁剪成宽高比相同的竖屏视频帧,实现在接收端设备中正常播放,视频播放的过程兼容了采集横屏视频帧和采集竖屏视频帧两种情况,提高了视频播放的兼容性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图。
图2是本申请实施例提供的一种视频处理方法的流程图。
图3是本申请实施例提供的一种视频处理方法的流程图。
图4是本申请实施例提供的一种视频处理方法的流程图。
图5是本申请实施例提供的一种对视频帧进行裁剪的示意图。
图6是本申请实施例提供的一种视频处理方法的流程图。
图7是本申请实施例提供的一种视频处理方法的流程图。
图8是本申请实施例提供的一种视频处理装置的结构示意图。
图9是本申请实施例提供的另一种视频处理装置的结构示意图。
图10是本申请实施例提供的另一种视频处理装置的结构示意图。
图11是本申请实施例提供的另一种视频处理装置的结构示意图。
图12是本申请实施例提供的一种终端的结构示意图。
图13是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一视频帧称为第二视频帧,且类似地,可将第二视频帧称为第一视频帧。
其中,至少一个是指一个或者一个以上,例如,至少一个视频帧可以是一个视频帧、两个视频帧、三个视频帧等任一大于等于一的整数个视频帧。多个是指两个或者两个以上,例如,多个视频帧可以是两个视频帧、三个视频帧等任一大于等于二的整数个视频帧。每个是指至少一个中的每一个,例如,每个视频帧是指多个视频帧中的每一个视频帧,若多个视频帧为3个视频帧,则每个视频帧是指3个视频帧中的每一个视频帧。
图1是本申请实施例提供的一种实施环境的示意图,参见图1,该实施环境包括:发送端设备101和接收端设备102。其中,接收端设备102为终端,例如该终端是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能电视、智能车载终端等,但并不局限于此。可选地,发送端设备101也为终端,或者发送端设备101为服务器,例如该服务器是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
发送端设备101和接收端设备102可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。发送端设备101用于获取视频推送给接收端设备102,接收端设备102用于播放发送端设备101推送的视频。
在一种可能实现方式中,发送端设备101和接收端设备102中均安装有应用客户端,该应用客户端能够实现视频采集、视频播放等功能。可选地,该应用客户端为发送端设备101和接收端设备102的操作***中的应用客户端,或者为第三方提供的应用客户端,例如该应用客户端为社交应用客户端、内容分享应用客户端、视频播放应用客户端或者直播应用客户端等,本申请实施例对此不做限定。
本申请实施例提供的视频处理方法,可应用于任一传输视频的场景下。
例如,在视频直播的场景下,主播终端向观众终端发送视频,由观众终端播放主播终端发送的视频。其中,主播终端采集的原始视频中包括原始视频帧,主播终端处于竖屏状态时,采集的原始视频帧为竖屏视频帧,处于横屏状态时,采集的原始视频帧为横屏视频帧。主播终端将采集的原始视频帧的中间区域裁剪下来,以使裁剪得到的视频帧为竖屏视频帧,然后生成包括裁剪得到的竖屏视频帧的目标视频,然后将目标视频推送给观众终端进行播放。
其中,在原始视频帧为竖屏视频帧时裁剪得到的竖屏视频帧和在原始视频帧为横屏视频帧时裁剪得到的竖屏视频帧的宽高比保持相同,从而实现无论主播终端处于竖屏状态还是横屏状态,都能向观众终端推送相同宽高比的竖屏视频帧。
图2是本申请实施例提供的一种视频处理方法的流程图。本申请实施例的执行主体为发送端设备,该发送端设备可以为上述图1的实施环境中所提供的发送端设备,参见图2,该方法包括:
201、发送端设备获取原始视频。
发送端设备获取原始视频,原始视频中包括多个原始视频帧。在发送端设备处于横屏状态时,原始视频帧为横屏视频帧,横屏视频帧的宽度大于横屏视频帧的高度,例如横屏视频帧的宽度与横屏视频帧的高度之间的比例为16:9等。在发送端设备处于竖屏状态时,原始视频帧为竖屏视频帧,竖屏视频帧的宽度小于竖屏视频帧的高度,例如竖屏视频帧的宽度与竖屏视频帧的高度之间的比例为9:16等。
可选地,发送端设备中包括摄像头,发送端设备通过该摄像头来采集原始视频。在发送端设备处于横屏状态时,摄像头通过拍摄得到的原始视频中的原始视频帧为横屏视频帧,在发送端设备处于竖屏状态时,摄像头通过拍摄得到的原始视频中的原始视频帧为竖屏视频帧。例如,当发送端设备的屏幕的较长的边与竖直方向平行时,该发送端设备处于竖屏状态,当发送端设备的屏幕的较长的边与竖直方向垂直时,该发送端设备处于横屏状态。
可选地,发送端设备中存储有原始视频,该原始视频为发送端设备采集的视频,或者为发送端设备接收到的视频等,本申请实施例对此不做限定。
202、发送端设备基于原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例。
发送端设备确定原始视频中的至少一个原始视频帧的宽度和高度,并基于该至少一个原始视频帧的宽度和高度,确定目标比例。其中,该目标比例大于0且小于1。
203、发送端设备对原始视频中的第一视频帧进行裁剪,得到目标视频,以使目标视频中的每个视频帧满足目标条件。
其中,第一视频帧为不满足目标条件的原始视频帧,目标条件为视频帧的宽度与高度之间的比例为该目标比例,该目标比例大于0且小于1。
发送端设备获取到原始视频,确定原始视频中不满足目标条件的第一视频帧,对原始视频中的第一视频帧进行裁剪,得到目标视频,以使目标视频中的每个视频帧满足目标条件。其中,由于目标条件为视频帧的宽度与高度之间的比例大于0且小于1,因此目标视频中每个视频帧的宽度均小于高度,也即是目标视频中的视频帧均为竖屏视频帧。其中,目标视频帧中包括对第一视频帧进行裁剪得到的视频帧。可选地,原始视频中还包括满足目标条件的原始视频帧,则目标视频中还包括满足目标条件的该原始视频帧。
204、发送端设备向接收端设备发送目标视频。
发送端设备获取到目标视频后,向接收端设备发送该目标视频,接收端设备接收到该目标视频之后,播放该目标视频。因此,在发送端设备获取到原始视频后,通过对不满足目标条件的第一视频帧进行裁剪,得到仅包括竖屏视频帧的目标视频,因此在原始视频中包括横屏视频帧,而接收端设备在不支持播放横屏视频帧的情况下,将原始视频转换为目标视频,从而使接收端设备正常播放目标视频,提高了视频播放的效果和兼容性。
其中,该发送端设备与该接收端设备之间进行视频通信。例如,在视频直播场景下,该发送端设备为主播终端,该接收端设备为观众终端,因此主播终端会将采集的视频发送给观众终端进行播放,从而进行视频直播。例如,在视频通话场景下,第一终端将采集的视频发送给第二终端进行播放,第二终端也可以将采集的视频发送给第一终端进行播放。
本申请实施例提供的方法,对原始视频中的第一视频帧进行裁剪得到目标视频,由于目标视频中的每个视频帧的宽度与高度之间的比例均小于1,因此目标视频中的视频帧均为竖屏视频帧,也即是实现了将原始视频中的视频帧自动转换为竖屏视频帧,并发送给接收端设备进行播放,因此在原始视频中包括横屏视频帧时,能够避免接收端设备不支持播放横屏视频帧而影响视频播放的情况,提高了视频播放的效果。
并且,因此无论采集的原始视频帧为横屏视频帧还是竖屏视频帧,都能够裁剪成宽高比相同的竖屏视频帧,实现在接收端设备中正常播放,视频播放的过程兼容了采集横屏视频帧和采集竖屏视频帧两种情况,提高了视频播放的兼容性。
图3是本申请实施例提供的一种视频处理方法的流程图。本申请实施例的执行主体为发送端设备,该发送端设备可以为上述图1的实施环境中所提供的发送端设备,参见图3,该方法包括:
301、发送端设备获取原始视频。
发送端设备获取原始视频,原始视频中包括至少一个横屏视频帧,横屏视频帧的宽度大于横屏视频帧的高度,例如,该横屏视频帧的宽度与视频帧的高度之间的比例为16:9等。可选地,该原始视频中还包括竖屏视频帧,竖屏视频帧的宽度小于竖屏视频帧的高度,例如,竖屏视频帧的宽度与竖屏视频帧的高度之间的比例为9:16等。
可选地,发送端设备中包括摄像头,发送端设备通过该摄像头来采集原始视频。在发送端设备处于横屏状态时,摄像头通过拍摄得到的原始视频中的视频帧为横屏视频帧,在发送端设备处于竖屏状态时,摄像头通过拍摄得到的原始视频中的视频帧为竖屏视频帧。例如,当发送端设备的屏幕的较长的边与竖直方向平行时,该发送端设备处于竖屏状态,当发送端设备的屏幕的较长的边与竖直方向垂直时,该发送端设备处于横屏状态。
302、发送端设备基于原始视频中的少一个原始视频帧的宽度和高度,确定目标比例。
发送端设备确定原始视频中的至少一个原始视频帧的宽度和高度,并基于该至少一个原始视频帧的宽度和高度,确定目标比例。其中,该目标比例大于0且小于1。
303、发送端设备对原始视频中的横屏视频帧进行裁剪,得到横屏视频帧对应的目标视频帧,以使目标视频帧的宽度与目标视频帧的高度之间的比例为目标比例。
发送端设备获取到原始视频后,则对该原始视频中的横屏视频帧进行裁剪,得到目标视频帧,以使目标视频帧的宽度与目标视频帧的高度之间的比例为目标比例。其中,该目标比例大于0且小于1,因此该目标视频帧的宽度小于目标视频帧的高度,也即是该目标视频帧为竖屏视频帧。目标视频帧是从横屏视频帧中裁剪得到的,因此该目标视频帧的尺寸小于该横屏视频帧的尺寸,该目标视频帧中包括该横屏视频帧中的部分画面信息。
304、发送端设备向接收端设备发送目标视频。
发送端设备获取到目标视频帧后,生成包括目标视频帧的目标视频,向接收端设备发送该目标视频,接收端设备接收到该目标视频之后,播放该目标视频。因此,在发送端设备采集到横屏视频帧,且接收端设备不支持播放横屏视频帧的情况下,通过将横屏视频帧裁剪为竖屏视频帧,使接收端设备播放该竖屏视频帧,来实现正常播放视频,提高了视频播放的效果和兼容性。
其中,该发送端设备与该接收端设备之间进行视频通信。例如,在视频直播场景下,该发送端设备为主播终端,该接收端设备为观众终端,因此主播终端会将采集的视频发送给观众终端进行播放,从而进行视频直播。例如,在视频通话场景下,第一终端将采集的视频发送给第二终端进行播放,第二终端也可以将采集的视频发送给第一终端进行播放。
本申请实施例提供的方法,对原始视频中的横屏视频帧进行裁剪得到目标视频帧,由于目标视频帧的宽度小于高度,因此该目标视频帧为竖屏视频帧,然后将包括竖屏视频帧的目标视频发送给接收端设备进行播放,从而实现了自动将横屏视频帧转换为竖屏视频帧,能够避免由于接收端设备不支持播放横屏视频帧而影响视频播放的情况,提高了视频播放的效果。
并且,由于能够将横屏视频帧裁剪为竖屏视频帧,并发送给接收端设备进行播放,因此无论采集的视频帧为横屏视频帧还是竖屏视频帧,都能够实现在接收端设备中正常播放,视频播放的过程兼容了采集横屏视频帧和采集竖屏视频帧两种情况,提高了视频播放的兼容性。
图4是本申请实施例提供的一种视频处理方法的流程图。本申请实施例的执行主体为发送端设备,参见图4,该方法包括:
401、发送端设备获取原始视频。
发送端设备获取原始视频,原始视频中包括多个原始视频帧。在发送端设备处于横屏状态时,原始视频帧为横屏视频帧,横屏视频帧的宽度大于横屏视频帧的高度,例如横屏视频帧的宽度与横屏视频帧的高度之间的比例为16:9等。在发送端设备处于竖屏状态时,原始视频帧为竖屏视频帧,竖屏视频帧的宽度小于竖屏视频帧的高度,例如竖屏视频帧的宽度与竖屏视频帧的高度之间的比例为9:16等。
其中,该发送端设备与该接收端设备之间进行视频通信包括多种场景。例如,在视频直播场景下,该发送端设备为主播终端,该接收端设备为观众终端,因此主播终端会将采集的视频发送给观众终端进行播放,从而进行视频直播。例如,在视频通话场景下,第一终端将采集的视频发送给第二终端进行播放,第二终端也可以将采集的视频发送给第一终端进行播放。
402、发送端设备基于原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例。
发送端设备确定原始视频中的至少一个原始视频帧的宽度和高度,并基于该至少一个原始视频帧的宽度和高度,确定目标比例。其中,该目标比例大于0且小于1。
在一种可能实现方式中,发送端设备获取参考视频帧的高度与宽度之间的第一比例,以及参考视频帧的宽度与高度之间的第二比例,该参考视频帧为多个原始视频帧中的任意一个,将第一比例和第二比例中小于1的比例,确定为目标比例。
发送端设备确定该参考视频帧的宽度和高度,并确定该参考视频帧的高度与宽度之间的第一比例,以及该参考视频帧的宽度与高度之间的第二比例,在第一比例和第二比例中确定小于1的比例,将确定的该比例作为目标比例。其中,发送端设备获取到参考视频帧之后,无需判断该参考视频帧为横屏视频帧还是竖屏视频帧,直接根据参考视频帧的宽度和高度,确定第一比例和第二比例,以便根据该第一比例和第二比例,确定大于0且小于1的目标比例。例如,该参考视频帧为横屏视频帧,横屏视频帧的高度与宽度之间的第一比例为大于0且小于1的比例,横屏视频帧的宽度与高度之间的第二比例为大于1的比例,因此将横屏视频帧对应的第一比例确定为目标比例。该参考视频帧为竖屏视频帧,竖屏视频帧的高度与宽度之间的第一比例为大于1的比例,竖屏视频帧的宽度与高度之间的第二比例为大于0且小于1的比例,因此将竖屏视频帧对应的第二比例确定为目标比例。
可选地,在参考视频帧为横屏视频帧的情况下,将横屏视频帧的高度与横屏视频帧的宽度之间的比例,确定为目标比例。可选地,在参考视频帧为竖屏视频帧的情况下,将竖屏视频帧的宽度与竖屏视频帧的高度之间的比例,确定为目标比例。
403、发送端设备按照目标比例对原始视频中的第一视频帧进行裁剪,得到目标视频,以使目标视频中的每个视频帧满足目标条件。
第一视频帧为不满足目标条件的原始视频帧,目标条件为视频帧的宽度与高度之间的比例为目标比例,该目标比例大于0且小于1。发送端设备获取到目标比例后,确定原始视频中不满足目标条件的第一视频帧,按照目标比例对原始视频中的第一视频帧进行裁剪,得到目标视频,以使目标视频中的每个视频帧满足目标条件,其中,由于目标条件为视频帧的宽度与高度之间的比例大于0且小于1,因此目标视频中每个视频帧的宽度均小于高度,也即是目标视频中的视频帧均为竖屏视频帧。例如,该目标比例为9:16,则目标视频中的每个视频帧的宽度与高度之间的比例均为9:16。
其中,目标视频中包括对第一视频帧进行裁剪得到的视频帧。可选地,原始视频中还包括满足目标条件的原始视频帧,则目标视频中还包括满足目标条件的该原始视频帧。其中,由于横屏视频帧的宽度与高度之间的比例大于1,因此原始视频中的横屏视频帧均为不满足目标条件的第一视频帧。可选地,原始视频中还包括竖屏视频帧,则宽度与高度之间的比例为目标比例的竖屏视频帧为满足目标条件的原始视频帧,宽度与高度之间的比例不为目标比例的竖屏视频帧为不满足目标条件的第一视频帧。
在一种可能实现方式中,发送端设备确定目标比例之后,每获取到原始视频中的一个原始视频帧,先确定该原始视频帧是否满足目标条件。发送端设备在确定该原始视频帧的宽度与高度之间的比例不等于目标比例的情况下,说明该原始视频帧不满足目标条件,则将该原始视频帧确定为第一视频帧,并按照目标比例对第一视频帧进行裁剪。另外,也可以在确认出多个或全部的第一视频帧后,再按照目标比例对第一视频帧进行裁剪。发送端设备在确定该原始视频帧的宽度与高度之间的比例等于目标比例的情况下,说明该原始视频帧满足目标条件,无需对该原始视频帧进行处理,则发送端设备获取该原始视频帧的下一个原始视频帧,并确定下一个原始视频帧是否满足目标条件。另外,也可以在获取到原始视频中的多个或全部原始视频帧后,再来确认该多个或全部原始视频帧是否满足目标条件,并按照目标比例对确定出的第一视频帧进行裁剪。可以理解,获取原始视频帧后,确定该原始视频帧是否满足目标条件,以及按照目标比例对确定出的第一视频帧进行裁剪的时机不做限制。
在一种可能实现方式中,发送端设备获取参考视频帧的高度和宽度,参考视频帧为至少一个原始视频帧中的任意一个,基于参考视频帧的高度和宽度中的最小值确定目标高度,目标高度不大于该最小值;确定目标宽度,目标宽度与目标高度之间的比例为目标比例。按照目标高度和目标宽度,在第一视频帧中确定目标区域;将第一视频帧中的目标区域进行裁剪,得到目标视频。
其中,在参考视频帧为横屏视频帧的情况下,横屏视频帧的高度为最小数值,因此该目标高度不大于该横屏视频帧的高度。可选地,在参考视频帧为横屏视频帧的情况下,发送端设备将横屏视频帧的高度确定为目标高度。由于发送端设备要在横屏视频帧中裁剪一个满足目标条件的视频帧,则在裁剪得到的视频帧的目标高度等于横屏视频帧的高度时,发送端设备裁剪得到的视频帧的尺寸最大,以使裁剪得到的视频帧中保留更多横屏视频帧中的画面信息,从而提高裁剪得到的视频帧的信息量。
其中,在参考视频帧为竖屏视频帧的情况下,竖屏视频帧的宽度为最小数值,因此该目标高度不大于该竖屏视频帧的宽度。可选地,在参考视频帧为竖屏视频帧的情况下,将竖屏视频帧的宽度,确定为目标高度。由于在参考视频帧为横屏视频帧的情况下,能够裁剪出的视频帧的高度最大为横屏视频帧的高度,也即是竖屏视频帧的宽度,为了保持在第一视频帧为横屏视频帧和竖屏视频帧的情况下裁剪得到的视频帧的尺寸相同,因此发送端设备将竖屏视频帧的宽度确定为裁剪得到的视频帧的目标高度。
在一种可能实现方式中,发送端设备响应于当前设备从竖屏状态切换至横屏状态,基于当前采集的原始视频帧的宽度和高度,确定目标比例。或者发送端设备响应于当前设备从横屏状态切换至竖屏状态,基于当前采集的原始视频帧的宽度和高度,确定目标比例。
其中,每当发送端设备检测到当前设备的状态发生变化,例如从竖屏状态切换至横屏状态或者从横屏状态切换至竖屏状态,则基于当前采集的原始视频帧的宽度和高度,确定目标比例,也即是当前设备的状态每发生一次变化,则重新确定一次目标比例,并按照该目标比例对第一视频帧进行裁剪。
在一种可能实现方式中,发送端设备在第一视频帧中建立坐标系,坐标系的原点为第一视频帧的四个顶点中的其中一个;基于原点、目标宽度以及目标高度,在第一视频帧中确定目标区域。
其中,坐标系的原点为第一视频帧的四个顶点中的其中一个,第一视频帧中包括四个顶点,分别为左上角的顶点、左下角的顶点、右上角的顶点以及右下角的顶点。发送端设备在四个顶点中选取任一顶点,作为坐标系的原点。然后基于坐标点的原点的位置、目标宽度以及目标高度,在第一视频帧中确定目标区域,该目标区域的高度为目标高度,该目标区域的宽度为目标宽度。
可选地,发送端设备基于原点、目标宽度以及目标高度,在第一视频帧中确定目标区域的过程,包括:
(1)发送端设备在第一视频帧中,确定与原点之间的水平距离为第一差值、且与原点之间的竖直距离为第二差值的第一关键点,第一差值为基于第一视频帧的宽度与目标宽度之间的差值确定的,第二差值为基于第一视频帧的高度与目标高度之间的差值确定的。
例如,发送端设备将第一视频帧的宽度与目标宽度之间的差值的一半确定为第一差值,将第一视频帧的高度与目标高度之间的差值的一半确定为第二差值。在第一视频帧中,确定与原点之间的水平距离为第一差值、且与原点之间的竖直距离为第二差值的第一关键点。可选地,发送端设备按照原点的位置来选取第一关键点。例如,如果原点为第一视频帧左上角的顶点,则该第一关键点位于原点右下方;如果原点为第一视频帧右下角的顶点,则该第一关键点位于原点左上方等,仅需保证第一关键点在第一视频帧中即可。
(2)发送端设备在第一视频帧中,确定与第一关键点之间的水平距离为目标宽度、且与第一关键点之间的竖直距离为0的第二关键点。
(3)发送端设备在第一视频帧中,确定与第一关键点之间的竖直距离为目标高度、且与第一关键点之间的水平距离为0的第三关键点。
(4)发送端设备在第一视频帧中,确定与第一关键点之间的水平距离为目标宽度、且与第一关键点之间的竖直距离为目标高度的第四关键点。
发送端设备确定第一关键点之后,选取第二关键点、第三关键点和第四关键点。例如,以原点为第一视频帧左上角的顶点为例,则发送端设备确定在第一关键点的右边、且与第一关键点之间的水平距离为目标宽度、且与第一关键点之间的竖直距离为0的第二关键点,确定在第一关键点的下边、且与第一关键点之间的竖直距离为目标高度、且与第一关键点之间的水平距离为0的第三关键点,确定在第一关键点的右下方、且与第一关键点之间的水平距离为目标宽度、且与第一关键点之间的竖直距离为目标高度的第四关键点。
(5)发送端设备将第一关键点、第二关键点、第三关键点和第四关键点构成的区域,确定为目标区域。
发送端设备确定第一关键点、第二关键点、第三关键点和第四关键点之后,在第一视频帧中确定该第一关键点、第二关键点、第三关键点和第四关键点构成的区域,将该区域确定为目标区域,则该目标区域的四个顶点为第一关键点、第二关键点、第三关键点和第四关键点,该目标区域的高度为目标高度,该目标区域的宽度为目标宽度。
可选地,发送端设备基于原点、目标宽度以及目标高度,在第一视频帧中确定目标区域的过程,包括:
(1)发送端设备在第一视频帧中,确定与原点之间的水平距离为目标宽度、且与原点之间的竖直距离为0的第五关键点。
(2)发送端设备在第一视频帧中,确定与原点之间的竖直距离为目标高度、且与原点之间的水平距离为0的第六关键点。
(3)发送端设备在第一视频帧中,确定与原点之间的水平距离为目标宽度、且与原点之间的竖直距离为目标高度的第七关键点。
(4)发送端设备将原点、第五关键点、第六关键点和第七关键点构成的区域,确定为目标区域。则该目标区域的四个顶点为原点、第五关键点、第六关键点和第七关键点,该目标区域的高度为目标高度,该目标区域的宽度为目标宽度。
其中,发送端设备根据原点、第五关键点、第六关键点和第七关键点确定目标区域的过程,与上述步骤中根据第一关键点、第二关键点、第三关键点和第四关键点确定目标区域的过程同理。不同之处在于,一个是基于原点来确定第一关键点,将第一关键点作为目标区域的其中一个顶点,另一个是直接将原点作为目标区域的其中一个顶点。
需要说明的是,上述步骤402-403仅以按照目标比例对第一视频帧进行裁剪得到目标视频为例进行说明,在另一实施例中,还可以采用其他方式对第一视频帧进行裁剪,得到目标视频。
在一种可能实现方式中,发送端设备对第一视频帧进行裁剪,得到第二视频帧,以使第二视频帧的宽度与第二视频帧的高度之间的比例为目标比例;将第二视频帧的尺寸放大至目标尺寸,得到目标视频。
发送端设备对第一视频帧进行裁剪得到第二视频帧,由于第二视频帧的尺寸小于第一视频帧的尺寸,如果直接将包括第二视频帧的视频发送给接收端设备进行播放,则播放的视频帧的尺寸较小,播放效果不好。因此发送端设备得到第二视频帧之后,将第二视频帧的尺寸放大至目标尺寸,得到目标视频,由于放大了视频帧的尺寸,因此后续将放大尺寸后的视频帧发送给接收端设备进行播放,接收端设备播放的视频帧更清晰,从而提高了播放效果。可选地,该目标尺寸由接收端设备发送,通过将第二视频帧的尺寸放大至接收端设备发送的目标尺寸,实现了由接收端设备控制视频帧的尺寸,提高了设置视频帧尺寸的灵活性。
在另一种可能实现方式中,发送端设备对第一视频帧进行裁剪,得到第二视频帧,以使第二视频帧的宽度与第二视频帧的高度之间的比例为目标比例;将第二视频帧的高度放大至与任一原始视频帧的宽度和高度中的最大值相同,将第二视频帧的宽度放大至与任一原始视频帧的宽度和高度中的最小值相同,得到目标视频。例如,在第一视频帧为横屏视频帧的情况下,横屏视频帧的尺寸为1280*720,则放大第二视频帧后得到的视频帧的尺寸为720*1280。例如,在第一视频帧为竖屏视频帧的情况下,竖屏视频帧的尺寸为720*1280,则放大第二视频帧后得到的视频帧的尺寸为720*1280。通过将第二视频帧的尺寸放大,能够提高后续播放视频帧的清晰度。
本申请实施例中,发送端设备对原始视频中不满足目标条件的第一视频帧均进行裁剪,得到目标视频,目标视频中包括宽高比相同的竖屏视频帧。本申请实施例采用对原始视频中的第一视频帧进行裁剪的方式,保持在采集到横屏视频帧和竖屏视频帧时都输出竖屏视频帧,保持输出视频的格式不变,能够提高视频播放的兼容。在一种可能实现方式中,原始视频中包括横屏视频帧和竖屏视频帧,在第一视频帧为竖屏视频帧时裁剪得到的视频帧和在第一视频帧为横屏视频帧时裁剪得到的视频帧的尺寸保持相同,从而实现无论发送端设备处于竖屏状态还是横屏状态,都能向接收端设备发送相同尺寸的视频帧,从而保证接收端设备播放的视频帧中的画面的大小是保持不变的,避免接收端设备播放的视频帧中的画面忽大忽小的情况,提高了视频播放的效果。
在一种可能实现方式中,发送端设备采用OpenGL ES(OpenGL for EmbeddedSystems,嵌入式***三维图形库)对原始视频中的第一视频帧进行裁剪,得到目标视频,以使目标视频中的每个视频帧的宽度与高度之间的比例为目标比例。或者,发送端设备还可以采用其他具有裁剪功能的工具对第一视频帧进行裁剪,本申请实施例对此不做限定。
在一种可能实现方式中,发送端设备对原始视频中的第一视频帧进行裁剪,得到目标视频帧,该目标视频帧的宽度与高度之间的比例为目标比例,发送端设备对目标视频帧进行编码,得到包括目标视频帧的目标视频。在另一种可能实现方式中,原始视频中还包括满足目标条件的原始视频帧,发送端设备对原始视频中的第一视频帧进行裁剪,得到目标视频帧,该目标视频帧的宽度与高度之间的比例为目标比例,发送端设备对目标视频帧和满足目标条件的原始视频帧进行编码,得到包括目标视频帧和满足目标条件的原始视频帧的目标视频。
可选地,发送端设备采用硬件编码器,对目标视频帧进行编码,得到目标视频,该目标视频为竖屏格式的视频。
图5是本申请实施例提供的一种对视频帧进行裁剪的示意图,参见图5,原始视频中包括横屏视频帧501,横屏视频帧501不满足目标条件,发送端设备在横屏视频帧501中确定目标区域511,将该目标区域511裁剪下来并放大,得到目标视频帧502。原始视频中还包括竖屏视频帧503,竖屏视频帧503不满足目标条件,发送端设备在竖屏视频帧503中确定目标区域513,将该目标区域513裁剪下来并放大,得到目标视频帧504。
404、发送端设备向接收端设备发送目标视频。
发送端设备获取到目标视频后,向接收端设备发送该目标视频。
在一种可能实现方式中,发送端设备中运行有直播应用客户端,该直播应用客户端具有直播功能。在上述步骤401中,发送端设备通过直播应用客户端采集原始视频。则在该步骤404中,发送端设备确定当前登录的主播标识对应的直播间中的至少一个观众标识,向至少一个观众标识对应的接收端设备发送目标视频。其中,当前登录的主播标识用于指示直播间的主播的身份,直播间中的至少一个观众标识用于指示直播间中的至少一个观众。该发送端设备的用户即为主播,主播通过计算设备中的直播应用客户端拍摄原始视频。可选地,在拍摄原始视频的过程中,主播可以将发送端设备竖屏放置,则发送端设备处于竖屏状态,采集的视频帧为竖屏视频帧,主播也可以将发送端设备切换为横屏放置,则发送端设备处于横屏状态,采集的视频帧为横屏视频帧,因此发送端设备采集的原始视频包括横屏视频帧和竖屏视频帧,发送端设备采用本申请实施例提供的方法,将原始视频中的视频帧裁剪为竖屏视频帧,从而将包括竖屏视频帧的目标视频推送给观众对应的接收端设备,从而避免由于接收端设备不支持播放横屏视频帧而影响播放视频的情况。
405、接收端设备在显示界面播放目标视频。
接收端设备接收到该目标视频之后,在显示界面播放该目标视频。因此,在发送端设备获取到的原始视频中包括横屏视频帧,且接收端设备不支持播放横屏视频帧的情况下,通过将横屏视频帧裁剪为竖屏视频帧,使接收端设备播放该竖屏视频帧,来实现正常播放视频,提高了视频播放的效果和兼容性。
406、发送端设备在显示界面播放目标视频。
发送端设备获取到目标视频后,在显示界面播放目标视频,则该发送端设备的用户看到该目标视频之后,即可通过调整发送端设备的位置或者调整自己的位置,来调整该目标视频中的画面,从而实现在对第一视频帧进行裁剪导致丢弃部分画面信息的情况下,也能够在目标视频中显示用户期望的画面信息。例如,在视频直播场景下,该发送端设备为主播终端,该显示界面为直播界面,主播终端在直播过程中会显示直播界面,主播终端通过对原始视频中的第一视频帧进行裁剪得到目标视频后,在直播界面中显示该目标视频,而不是显示原始视频。
需要说明的是,本申请实施例仅以先执行步骤404,再执行步骤406为例进行说明,在另一实施例中,同时执行步骤404和406。另外,本申请实施例仅以发送端设备播放目标视频为例进行说明,在另一实施例中,发送端设备还可以不执行上述步骤406,例如发送端设备直接显示获取的原始视频等。
需要说明的是,本申请实施例仅以发送端设备对原始视频中的第一视频帧进行裁剪得到目标视频帧为例进行说明,在另一实施例中,发送端设备按照目标高度和目标宽度,对原始视频中的每个原始视频帧进行裁剪,得到目标视频,目标视频中的每个视频帧的高度为该目标高度,目标视频中的每个视频帧的宽度为该目标宽度,目标宽度与目标高度之间的比例为该目标比例。
图6是本申请实施例提供的一种视频处理方法的流程图,该方法应用于视频直播场景下,如图6所示,该方法包括:
601、主播终端打开摄像头,采集原始视频;
602、主播终端根据原始视频中的原始视频帧确定目标高度和目标宽度;
603、主播终端按照目标高度和目标宽度在原始视频帧中进行裁剪,得到第二视频帧;
604、主播终端放大第二视频帧得到目标视频帧;
605、主播终端推送包括目标视频帧的目标视频。
其中,如图6所示,主播终端在对某一原始视频帧进行处理得到第二视频帧之后,判断是否切换状态,例如从横屏状态切换为竖屏状态,或者从竖屏状态切换至横屏状态,如果没有切换状态,则继续基于该目标高度和目标宽度对采集的下一个原始视频帧进行处理,如果切换了状态,则重新确定目标高度和目标宽度,并基于重新确定的目标高度和目标宽度对采集的下一个原始视频帧进行处理。其中,如图6所示,主播终端在推送目标视频时,判断是否结束直播,如果没有结束直播,则继续采集原始视频并进行处理,如果结束了直播,则结束视频处理的流程。
本申请实施例提供的方法,对原始视频中的第一视频帧进行裁剪得到目标视频,由于目标视频中的每个视频帧的宽度与高度之间的比例均小于1,因此目标视频中的视频帧均为竖屏视频帧,也即是实现了将原始视频中的视频帧自动转换为竖屏视频帧,并发送给接收端设备进行播放,因此在原始视频中包括横屏视频帧时,能够避免接收端设备不支持播放横屏视频帧而影响视频播放的情况,提高了视频播放的效果。
并且,因此无论采集的原始视频帧为横屏视频帧还是竖屏视频帧,都能够裁剪成宽高比相同的竖屏视频帧,实现在接收端设备中正常播放,视频播放的过程兼容了采集横屏视频帧和采集竖屏视频帧两种情况,提高了视频播放的兼容性。
并且,由于发送端设备要在横屏视频帧中裁剪一个视频帧,则在裁剪得到的视频帧的目标高度等于横屏视频帧的高度时,发送端设备裁剪得到的视频帧的尺寸最大,以使裁剪得到的视频帧中保留更多横屏视频帧中的画面信息,从而提高裁剪得到的视频帧的信息量。
并且,发送端设备得到第二视频帧之后,获取接收端设备发送的目标尺寸,将第二视频帧的尺寸放大至目标尺寸,由于放大了视频帧的尺寸,因此后续将放大尺寸后的视频帧发送给接收端设备进行播放,接收端设备播放的视频帧更清晰,从而提高了播放效果。
并且,通过将第二视频帧的尺寸放大至接收端设备发送的目标尺寸,实现了由接收端设备控制视频帧的尺寸,提高了设置视频帧尺寸的灵活性。
并且,在原始视频帧为竖屏视频帧时裁剪得到的视频帧和在原始视频帧为横屏视频帧时裁剪得到的视频帧的尺寸保持相同,从而实现无论发送端设备处于竖屏状态还是横屏状态,都能向接收端设备发送相同尺寸的视频帧,从而保证接收端设备播放的视频帧中的画面的大小是保持不变的,避免接收端设备播放的视频帧中的画面忽大忽小的情况,提高了视频播放的效果。
图7是本申请实施例提供的一种视频处理方法的流程图。本申请实施例的执行主体为发送端设备,参见图7,该方法包括:
701、发送端设备获取原始视频。
发送端设备获取原始视频,原始视频中包括多个原始视频帧,原始视频帧为横屏视频帧或者竖屏视频帧,横屏视频帧的宽度大于横屏视频帧的高度,例如,该横屏视频帧的宽度与视频帧的高度之间的比例为16:9等。可选地,该原始视频中还包括竖屏视频帧,竖屏视频帧的宽度小于竖屏视频帧的高度,例如,竖屏视频帧的宽度与竖屏视频帧的高度之间的比例为9:16等。
702、发送端设备基于原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例。
发送端设备确定原始视频中的至少一个原始视频帧的宽度和高度,并基于该至少一个原始视频帧的宽度和高度,确定目标比例,该目标比例大于0且小于1。
在一种可能实现方式中,由于横屏视频帧的高度小于横屏视频帧的宽度,因此横屏视频帧的高度与横屏视频帧的宽度之间的比例大于0且小于1,则发送端设备将横屏视频帧的高度与横屏视频帧的宽度之间的比例,确定为目标比例。
703、发送端设备按照目标比例对横屏视频帧进行裁剪,得到目标视频帧,以使目标视频帧的宽度与目标视频帧的高度之间的比例为目标比例。
发送端设备获取到目标比例后,对横屏视频帧进行裁剪得到目标视频帧,以使目标视频帧的宽度与目标视频帧的高度之间的比例为目标比例,该目标视频帧的宽度小于目标视频帧的高度,因此该目标视频帧为竖屏视频帧。
在一种可能实现方式中,发送端设备每获取到原始视频中的一个原始视频帧,先确定该原始视频帧是否为横屏视频帧,即确定该原始视频帧的宽度是否大于高度,如果原始视频帧的宽度是大于高度,则该原始视频帧为横屏视频帧,后续需要对该横屏视频帧进行裁剪。另外,也可以在确认出多个或全部的横屏视频帧后,再按照目标比例对横屏视频帧进行裁剪。如果原始视频帧的宽度不大于高度,则该原始视频帧为竖屏视频帧,不需要进行裁剪,则发送端设备获取该原始视频帧的下一个原始视频帧,并确定下一个原始视频帧是否为横屏视频帧。另外,也可以在获取到原始视频中的多个或全部原始视频帧后,再来确认该多个或全部原始视频帧是否为横屏视频帧,并按照目标比例对确定出的横屏视频帧进行裁剪。可以理解,获取原始视频帧后,确定该原始视频帧是否为横屏视频帧,以及按照目标比例对确定出的横屏视频帧进行裁剪的时机不做限制。
在一种可能实现方式中,发送端设备在横屏视频帧中建立坐标系,坐标系的原点为横屏视频帧的四个顶点中的其中一个;基于原点、目标宽度以及目标高度,在横屏视频帧中确定目标区域。
其中,在横屏视频帧中确定目标区域的过程,与上述步骤403中在原始横视频帧中确定目标区域的过程同理,在此不再一一赘述。
在一种可能实现方式中,发送端设备基于横屏视频帧的高度确定目标高度,目标高度不大于横屏视频帧的高度;确定目标宽度,目标宽度与目标高度之间的比例为目标比例;按照目标高度和目标宽度,在横屏视频帧中确定目标区域;将横屏视频帧中的目标区域进行裁剪,得到目标视频帧。
可选地,发送端设备将横屏视频帧的高度确定为目标高度。该目标高度即为目标视频帧的高度,由于发送端设备要在横屏视频帧中裁剪一个目标视频帧,则在目标视频帧的目标高度等于横屏视频帧的高度时,发送端设备裁剪出的目标视频帧的尺寸最大,以使目标视频帧中保留更多原始横屏视频帧中的画面信息,从而提高目标视频帧的信息量。
在一种可能实现方式中,发送端设备对横屏视频帧进行裁剪,得到第二视频帧,第二视频帧的宽度小于第二视频帧的高度;将第二视频帧的尺寸放大至目标尺寸,得到目标视频帧。
在一种可能实现方式中,发送端设备对横屏视频帧进行裁剪,得到第二视频帧,第二视频帧的宽度小于第二视频帧的高度;将第二视频帧的高度放大至与横屏视频帧的宽度相同,将第二视频帧的宽度放大至与横屏视频帧的高度相同,得到目标视频帧。
704、发送端设备向接收端设备发送目标视频。
发送端设备获取到目标视频帧后,生成包括目标视频帧的目标视频,向接收端设备发送该目标视频。
705、接收端设备在显示界面播放目标视频。
706、发送端设备在显示界面播放目标视频。
发送端设备获取到包括目标视频帧的目标视频后,在显示界面同步播放目标视频。
需要说明的是,本申请实施例仅以先执行步骤704,再执行步骤706为例进行说明,在另一实施例中,同时执行步骤704和706。另外,本申请实施例仅以发送端设备同步播放目标视频为例进行说明,在另一实施例中,发送端设备还可以不执行上述步骤705,例如发送端设备直接显示获取的原始视频等。
本申请实施例提供的方法,采集到原始视频之后,先对原始视频中的横屏视频帧进行裁剪得到目标视频帧,由于目标视频帧的宽度小于高度,因此该目标视频帧为竖屏视频帧,然后将包括竖屏视频帧的目标视频发送给接收端设备进行播放,从而实现了自动将横屏视频帧转换为竖屏视频帧,能够避免由于接收端设备不支持播放横屏视频帧而影响视频播放的情况,提高了视频播放的效果。
并且,由于能够将横屏视频帧裁剪为竖屏视频帧,并发送给接收端设备进行播放,因此无论采集的视频帧为横屏视频帧还是竖屏视频帧,都能够实现在接收端设备中正常播放,视频播放的过程兼容了采集横屏视频帧和采集竖屏视频帧两种情况,提高了视频播放的兼容性。
并且,由于发送端设备要在横屏视频帧中裁剪一个目标视频帧,则在目标视频帧的目标高度等于横屏视频帧的高度时,发送端设备裁剪出的目标视频帧的尺寸最大,以使目标视频帧中保留更多原始横屏视频帧中的画面信息,从而提高目标视频帧的信息量。
并且,发送端设备得到第二视频帧之后,获取接收端设备发送的目标尺寸,将第二视频帧的尺寸放大至目标尺寸,得到目标视频帧,由于放大了视频帧的尺寸,因此后续将放大尺寸后的视频帧发送给接收端设备进行播放,接收端设备播放的视频帧更清晰,从而提高了播放效果。
并且,通过将第二视频帧的尺寸放大至接收端设备发送的目标尺寸,实现了由接收端设备控制视频帧的尺寸,提高了设置视频帧尺寸的灵活性。
图8是本申请实施例提供的一种视频处理装置的结构示意图。参见图8,该装置包括:
视频获取模块801,用于获取原始视频,原始视频中包括多个原始视频帧;
比例确定模块802,用于基于原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,目标比例大于0且小于1;
裁剪模块803,用于对原始视频中的第一视频帧进行裁剪,得到目标视频,以使目标视频中的每个视频帧满足目标条件,第一视频帧为不满足目标条件的原始视频帧,目标条件为视频帧的宽度与高度之间的比例为目标比例;
视频发送模块804,用于向接收端设备发送目标视频,接收端设备用于播放目标视频。
本申请实施例提供的视频处理装置,对原始视频中的第一视频帧进行裁剪得到目标视频,由于目标视频中的每个视频帧的宽度与高度之间的比例均小于1,因此目标视频中的视频帧均为竖屏视频帧,也即是实现了将原始视频中的视频帧转换为竖屏视频帧,并发送给接收端设备进行播放,因此在原始视频中包括横屏视频帧时,能够避免接收端设备不支持播放横屏视频帧而影响视频播放的情况,提高了视频播放的效果。并且,因此无论采集的原始视频帧为横屏视频帧还是竖屏视频帧,都能够裁剪成宽高比相同的竖屏视频帧,实现在接收端设备中正常播放,视频播放的过程兼容了采集横屏视频帧和采集竖屏视频帧两种情况,提高了视频播放的兼容性。
可选地,参见图9,比例确定模块802,包括:
比例获取单元812,用于获取参考视频帧的高度与宽度之间的第一比例,以及参考视频帧的宽度与高度之间的第二比例,参考视频帧为多个原始视频帧中的任意一个;
第一比例确定单元822,用于将第一比例和第二比例中小于1的比例,确定为目标比例。
可选地,参见图9,装置还包括:
高度确定模块805,用于获取参考视频帧的高度和宽度,参考视频帧为多个原始视频帧中的任意一个;基于参考视频帧的高度和宽度中的最小值确定目标高度,目标高度不大于最小值;
宽度确定模块806,用于确定目标宽度,目标宽度与目标高度之间的比例为目标比例;
裁剪模块803,包括:
区域确定单元813,用于按照目标高度和目标宽度,在第一视频帧中确定目标区域;
第一裁剪单元823,用于将第一视频帧中的目标区域进行裁剪,得到目标视频。
可选地,参见图9,比例确定模块802,包括:
第二比例确定单元832,用于响应于当前设备从竖屏状态切换至横屏状态,基于当前采集的原始视频帧的宽度和高度,确定目标比例;或者,
第二比例确定单元832,用于响应于当前设备从横屏状态切换至竖屏状态,基于当前采集的原始视频帧的宽度和高度,确定目标比例。
可选地,参见图9,区域确定单元813,用于:
在第一视频帧中建立坐标系,坐标系的原点为第一视频帧的四个顶点中的其中一个;
基于原点、目标宽度以及目标高度,在第一视频帧中确定目标区域。
可选地,参见图9,区域确定单元813,用于:
在第一视频帧中,确定与原点之间的水平距离为第一差值、且与原点之间的竖直距离为第二差值的第一关键点,第一差值为基于第一视频帧的宽度与目标宽度之间的差值确定的,第二差值为基于第一视频帧的高度与目标高度之间的差值确定的;
在第一视频帧中,确定与第一关键点之间的水平距离为目标宽度、且与第一关键点之间的竖直距离为0的第二关键点;
在第一视频帧中,确定与第一关键点之间的竖直距离为目标高度、且与第一关键点之间的水平距离为0的第三关键点;
在第一视频帧中,确定与第一关键点之间的水平距离为目标宽度、且与第一关键点之间的竖直距离为目标高度的第四关键点;
将第一关键点、第二关键点、第三关键点和第四关键点构成的区域,确定为目标区域。
可选地,参见图9,区域确定单元813,用于:
在第一视频帧中,确定与原点之间的水平距离为目标宽度、且与原点之间的竖直距离为0的第五关键点;
在第一视频帧中,确定与原点之间的竖直距离为目标高度、且与原点之间的水平距离为0的第六关键点;
在第一视频帧中,确定与原点之间的水平距离为目标宽度、且与原点之间的竖直距离为目标高度的第七关键点;
将原点、第五关键点、第六关键点和第七关键点构成的区域,确定为目标区域。
可选地,参见图9,裁剪模块803,包括:
第二裁剪单元833,用于对第一视频帧进行裁剪,得到第二视频帧,以使第二视频帧的宽度与第二视频帧的高度之间的比例为目标比例;
尺寸放大单元843,用于将第二视频帧的尺寸放大至目标尺寸,得到目标视频;或者,
尺寸放大单元843,用于将第二视频帧的高度放大至与任一原始视频帧的宽度和高度中的最大值相同,将第二视频帧的宽度放大至与任一原始视频帧的宽度和高度中的最小值相同,得到目标视频。
可选地,参见图9,视频获取模块801,用于通过直播应用客户端采集原始视频;
视频发送模块804,包括:
标识确定单元814,用于确定当前登录的主播标识对应的直播间中的至少一个观众标识;
视频发送单元824,用于向至少一个观众标识对应的接收端设备发送目标视频。
需要说明的是:上述实施例提供的视频处理装置在处理视频时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频处理装置与视频处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10是本申请实施例提供的一种视频处理装置的结构示意图。参见图10,该装置包括:
视频获取模块1001,用于获取原始视频,原始视频中包括多个原始视频帧;
比例确定模块1002,用于基于原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,目标比例大于0且小于1;
裁剪模块1003,用于对原始视频中的横屏视频帧进行裁剪,得到横屏视频帧对应的目标视频帧,以使目标视频帧的宽度与目标视频帧的高度之间的比例为目标比例;
视频发送模块1004,用于向接收端设备发送目标视频,目标视频包括目标视频帧,接收端设备用于播放目标视频。
本申请实施例提供的视频处理装置,对原始视频中的横屏视频帧进行裁剪得到目标视频帧,由于目标视频帧的宽度小于高度,因此该目标视频帧为竖屏视频帧,然后将包括竖屏视频帧的目标视频发送给接收端设备进行播放,从而实现了由横屏视频帧转换为竖屏视频帧,能够避免由于接收端设备不支持播放横屏视频帧而影响视频播放的情况,提高了视频播放的效果。并且,由于能够将横屏视频帧裁剪为竖屏视频帧,并发送给接收端设备进行播放,因此无论采集的视频帧为横屏视频帧还是竖屏视频帧,都能够实现在接收端设备中正常播放,视频播放的过程兼容了采集横屏视频帧和采集竖屏视频帧两种情况,提高了视频播放的兼容性。
可选地,参见图11,比例确定模块1002,包括:
比例获取单元1012,用于获取参考视频帧的高度与宽度之间的第一比例,以及参考视频帧的宽度与高度之间的第二比例,参考视频帧为多个原始视频帧中的任意一个;
比例确定单元1022,用于将第一比例和第二比例中小于1的比例,确定为目标比例。
可选地,参见图11,装置还包括:
高度确定模块1005,用于基于横屏视频帧的高度确定目标高度,目标高度不大于横屏视频帧的高度;
宽度确定模块1006,用于确定目标宽度,目标宽度与目标高度之间的比例为目标比例;
裁剪模块1003,包括:
区域确定单元1013,用于按照目标高度和目标宽度,在横屏视频帧中确定目标区域;
第一裁剪单元1023,用于将横屏视频帧中的目标区域进行裁剪,得到目标视频帧。
可选地,参见图11,区域确定单元1013,用于:
在横屏视频帧中建立坐标系,坐标系的原点为横屏视频帧的四个顶点中的其中一个;
基于原点、目标宽度以及目标高度,在横屏视频帧中确定目标区域。
可选地,参见图11,区域确定单元1013,用于:
在横屏视频帧中,确定与原点之间的水平距离为第一差值、且与原点之间的竖直距离为第二差值的第一关键点,第一差值为基于横屏视频帧的宽度与目标宽度之间的差值确定的,第二差值为基于横屏视频帧的高度与目标高度之间的差值确定的;
在横屏视频帧中,确定与第一关键点之间的水平距离为目标宽度、且与第一关键点之间的竖直距离为0的第二关键点;
在横屏视频帧中,确定与第一关键点之间的竖直距离为目标高度、且与第一关键点之间的水平距离为0的第三关键点;
在横屏视频帧中,确定与第一关键点之间的水平距离为目标宽度、且与第一关键点之间的竖直距离为目标高度的第四关键点;
将第一关键点、第二关键点、第三关键点和第四关键点构成的区域,确定为目标区域。
可选地,参见图11,区域确定单元1013,用于:
在横屏视频帧中,确定与原点之间的水平距离为目标宽度、且与原点之间的竖直距离为0的第五关键点;
在横屏视频帧中,确定与原点之间的竖直距离为目标高度、且与原点之间的水平距离为0的第六关键点;
在横屏视频帧中,确定与原点之间的水平距离为目标宽度、且与原点之间的竖直距离为目标高度的第七关键点;
将原点、第五关键点、第六关键点和第七关键点构成的区域,确定为目标区域。
可选地,参见图11,裁剪模块1003,包括:
第二裁剪单元1033,用于对横屏视频帧进行裁剪,得到第二视频帧,以使第二视频帧的宽度与第二视频帧的高度之间的比例为目标比例;
尺寸放大单元1043,用于将第二视频帧的尺寸放大至目标尺寸,得到目标视频帧;或者,
尺寸放大单元1043,还用于将第二视频帧的高度放大至与横屏视频帧的宽度相同,将第二视频帧的宽度放大至与横屏视频帧的高度相同,得到目标视频帧。
可选地,参见图11,视频获取模块1001,用于通过直播应用客户端采集原始视频;
视频发送模块1004,包括:
标识确定单元1014,用于确定当前登录的主播标识对应的直播间中的至少一个观众标识;
视频发送单元1024,用于向至少一个观众标识对应的接收端设备发送目标视频。
需要说明的是:上述实施例提供的视频处理装置在处理视频时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频处理装置与视频处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例的视频处理方法中所执行的操作。
可选地,该计算机设备提供为终端。图12示出了本申请一个示例性实施例提供的终端1200的结构示意图。
终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理的交互器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一条计算机程序,该至少一条计算机程序用于被处理器1201所具有以实现本申请中方法实施例提供的视频处理方法。
在一些实施例中,终端1200还可选包括有:***设备接口1203和至少一个***设备。处理器1201、存储器1202和***设备接口1203之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口1203相连。可选地,***设备包括:射频电路1204、显示屏1205、摄像头组件1206和陀螺仪传感器1207中的至少一种。
***设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和***设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和***设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置在终端1200的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在终端1200的不同表面或呈折叠设计;在另一些实施例中,显示屏1205可以是柔性显示屏,设置在终端1200的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。前置摄像头设置在终端1200的前面板,后置摄像头设置在终端1200的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
陀螺仪传感器1207可以检测终端1200的机体方向及转动角度,陀螺仪传感器1207可以与加速度传感器1211协同采集用户对终端1200的3D动作。处理器1201根据陀螺仪传感器1207采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
可选地,该计算机设备提供为服务器。图13是本申请实施例提供的一种服务器的结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1301和一个或一个以上的存储器1302,其中,所述存储器1302中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器1301加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例的视频处理方法中所执行的操作。
本申请实施例还提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机程序代码,计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取计算机程序代码,处理器执行计算机程序代码,使得计算机设备实现如上述实施例的视频处理方法中所执行的操作。在一些实施例中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链***。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种视频处理方法,其特征在于,所述方法包括:
获取原始视频,所述原始视频中包括多个原始视频帧;
基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,所述目标比例大于0且小于1;
对所述原始视频中的第一视频帧进行裁剪,得到目标视频,以使所述目标视频中的每个视频帧满足目标条件,所述第一视频帧为不满足所述目标条件的原始视频帧,所述目标条件为视频帧的宽度与高度之间的比例为所述目标比例;
向接收端设备发送目标视频,所述接收端设备用于播放所述目标视频。
2.根据权利要求1所述的方法,其特征在于,所述基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,包括:
获取参考视频帧的高度与宽度之间的第一比例,以及所述参考视频帧的宽度与高度之间的第二比例,所述参考视频帧为所述多个原始视频帧中的任意一个;
将所述第一比例和所述第二比例中小于1的比例,确定为所述目标比例。
3.根据权利要求1所述的方法,其特征在于,所述对所述原始视频中的第一视频帧进行裁剪,得到目标视频,以使所述目标视频中的每个视频帧满足目标条件之前,所述方法还包括:
获取参考视频帧的高度和宽度,所述参考视频帧为所述多个原始视频帧中的任意一个;
基于所述参考视频帧的高度和宽度中的最小值确定目标高度,所述目标高度不大于所述最小值;
确定目标宽度,所述目标宽度与所述目标高度之间的比例为所述目标比例;
所述对所述原始视频中的第一视频帧进行裁剪,得到目标视频,以使所述目标视频中的每个视频帧满足目标条件,包括:
按照所述目标高度和所述目标宽度,在所述第一视频帧中确定目标区域;
将所述第一视频帧中的目标区域进行裁剪,得到所述目标视频。
4.根据权利要求3所述的方法,其特征在于,所述按照所述目标高度和所述目标宽度,在所述第一视频帧中确定目标区域,包括:
在所述第一视频帧中建立坐标系,所述坐标系的原点为所述第一视频帧的四个顶点中的其中一个;
基于所述原点、所述目标宽度以及所述目标高度,在所述第一视频帧中确定所述目标区域。
5.根据权利要求4所述的方法,其特征在于,所述基于所述原点、所述目标宽度以及所述目标高度,在所述第一视频帧中确定所述目标区域,包括:
在所述第一视频帧中,确定与所述原点之间的水平距离为第一差值、且与所述原点之间的竖直距离为第二差值的第一关键点,所述第一差值为基于所述第一视频帧的宽度与所述目标宽度之间的差值确定的,所述第二差值为基于所述第一视频帧的高度与所述目标高度之间的差值确定的;
在所述第一视频帧中,确定与所述第一关键点之间的水平距离为所述目标宽度、且与所述第一关键点之间的竖直距离为0的第二关键点;
在所述第一视频帧中,确定与所述第一关键点之间的竖直距离为所述目标高度、且与所述第一关键点之间的水平距离为0的第三关键点;
在所述第一视频帧中,确定与所述第一关键点之间的水平距离为所述目标宽度、且与所述第一关键点之间的竖直距离为所述目标高度的第四关键点;
将所述第一关键点、所述第二关键点、所述第三关键点和所述第四关键点构成的区域,确定为所述目标区域。
6.根据权利要求1所述的方法,其特征在于,所述对所述原始视频中的第一视频帧进行裁剪,得到目标视频,以使所述目标视频中的每个视频帧满足目标条件,包括:
对所述第一视频帧进行裁剪,得到第二视频帧,以使所述第二视频帧的宽度与所述第二视频帧的高度之间的比例为所述目标比例;
将所述第二视频帧的尺寸放大至目标尺寸,得到所述目标视频;或者,
将所述第二视频帧的高度放大至与任一原始视频帧的宽度和高度中的最大值相同,将所述第二视频帧的宽度放大至与所述任一原始视频帧的宽度和高度中的最小值相同,得到所述目标视频。
7.根据权利要求1所述的方法,其特征在于,所述获取原始视频,包括:
通过直播应用客户端采集所述原始视频;
所述向接收端设备发送目标视频,包括:
确定当前登录的主播标识对应的直播间中的至少一个观众标识;
向所述至少一个观众标识对应的接收端设备发送所述目标视频。
8.一种视频处理方法,其特征在于,所述方法包括:
获取原始视频,所述原始视频中包括多个原始视频帧;
基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,所述目标比例大于0且小于1;
对所述原始视频中的横屏视频帧进行裁剪,得到所述横屏视频帧对应的目标视频帧,以使所述目标视频帧的宽度与所述目标视频帧的高度之间的比例为所述目标比例;
向接收端设备发送目标视频,所述目标视频包括所述目标视频帧,所述接收端设备用于播放所述目标视频。
9.根据权利要求8所述的方法,其特征在于,所述基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,包括:
获取参考视频帧的高度与宽度之间的第一比例,以及所述参考视频帧的宽度与高度之间的第二比例,所述参考视频帧为所述多个原始视频帧中的任意一个;
将所述第一比例和所述第二比例中小于1的比例,确定为所述目标比例。
10.根据权利要求8所述的方法,其特征在于,所述对所述原始视频中的横屏视频帧进行裁剪,得到所述横屏视频帧对应的目标视频帧,以使所述目标视频帧的宽度与所述目标视频帧的高度之间的比例为所述目标比例之前,所述方法还包括:
基于所述横屏视频帧的高度确定目标高度,所述目标高度不大于所述横屏视频帧的高度;
确定目标宽度,所述目标宽度与所述目标高度之间的比例为所述目标比例;
所述对所述原始视频中的横屏视频帧进行裁剪,得到所述横屏视频帧对应的目标视频帧,以使所述目标视频帧的宽度与所述目标视频帧的高度之间的比例为所述目标比例,包括:
按照所述目标高度和所述目标宽度,在所述横屏视频帧中确定目标区域;
将所述横屏视频帧中的所述目标区域进行裁剪,得到所述目标视频帧。
11.根据权利要求8所述的方法,其特征在于,所述对所述原始视频中的横屏视频帧进行裁剪,得到所述横屏视频帧对应的目标视频帧,以使所述目标视频帧的宽度与所述目标视频帧的高度之间的比例为所述目标比例,包括:
对所述横屏视频帧进行裁剪,得到第二视频帧,以使所述第二视频帧的宽度与所述第二视频帧的高度之间的比例为所述目标比例;
将所述第二视频帧的尺寸放大至目标尺寸,得到所述目标视频帧;或者,
将所述第二视频帧的高度放大至与所述横屏视频帧的宽度相同,将所述第二视频帧的宽度放大至与所述横屏视频帧的高度相同,得到所述目标视频帧。
12.一种视频处理装置,其特征在于,所述装置包括:
视频获取模块,用于获取原始视频,所述原始视频中包括至少一个原始视频帧;
比例确定模块,用于基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,所述目标比例大于0且小于1;
裁剪模块,用于对所述原始视频中的第一视频帧进行裁剪,得到目标视频,以使所述目标视频中的每个视频帧满足目标条件,所述第一视频帧为不满足所述目标条件的原始视频帧,所述目标条件为视频帧的宽度与高度之间的比例为所述目标比例;
视频发送模块,用于向接收端设备发送目标视频,所述接收端设备用于播放所述目标视频。
13.一种视频处理装置,其特征在于,所述装置包括:
视频获取模块,用于获取原始视频,所述原始视频中包括多个原始视频帧;
比例确定模块,用于基于所述原始视频中的至少一个原始视频帧的宽度和高度,确定目标比例,所述目标比例大于0且小于1;
裁剪模块,用于对所述原始视频中的横屏视频帧进行裁剪,得到所述横屏视频帧对应的目标视频帧,以使所述目标视频帧的宽度与所述目标视频帧的高度之间的比例为所述目标比例;
视频发送模块,用于向接收端设备发送目标视频,所述目标视频包括所述目标视频帧,所述接收端设备用于播放所述目标视频。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如权利要求1至7任一项所述的视频处理方法中所执行的操作,或者实现如权利要求8至11任一项所述的视频处理方法中所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现如权利要求1至7任一项所述的视频处理方法中所执行的操作,或者实现如权利要求8至11任一项所述的视频处理方法中所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110357629.1A CN115174994A (zh) | 2021-04-01 | 2021-04-01 | 视频处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110357629.1A CN115174994A (zh) | 2021-04-01 | 2021-04-01 | 视频处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115174994A true CN115174994A (zh) | 2022-10-11 |
Family
ID=83476285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110357629.1A Pending CN115174994A (zh) | 2021-04-01 | 2021-04-01 | 视频处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174994A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024114569A1 (zh) * | 2022-11-30 | 2024-06-06 | 华为技术有限公司 | 一种视频处理的方法以及电子设备 |
-
2021
- 2021-04-01 CN CN202110357629.1A patent/CN115174994A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024114569A1 (zh) * | 2022-11-30 | 2024-06-06 | 华为技术有限公司 | 一种视频处理的方法以及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10778865B2 (en) | Image processing apparatus, image processing system, and image processing method | |
US10593014B2 (en) | Image processing apparatus, image processing system, image capturing system, image processing method | |
US11195337B2 (en) | Augmented reality video communications | |
US10855916B2 (en) | Image processing apparatus, image capturing system, image processing method, and recording medium | |
US11310459B2 (en) | Image capturing device, image capturing system, image processing method, and recording medium | |
CN113570626B (zh) | 图像裁剪方法、装置、计算机设备及存储介质 | |
CN109874043B (zh) | 视频流发送方法、播放方法及装置 | |
WO2012109831A1 (zh) | 一种可视电话中拍照的方法及移动终端 | |
CN110198336B (zh) | 一种自动排版方法和云服务平台 | |
KR20120086810A (ko) | 단말기 및 그 단말기에서 이미지 처리 방법 | |
JP7371264B2 (ja) | 画像処理方法、電子機器及びコンピュータ可読記憶媒体 | |
CN109168032B (zh) | 视频数据的处理方法、终端、服务器及存储介质 | |
US20190289206A1 (en) | Image processing apparatus, image capturing system, image processing method, and recording medium | |
CN111935542A (zh) | 视频处理方法、视频播放方法、装置、设备及存储介质 | |
CN110839174A (zh) | 图像处理的方法、装置、计算机设备以及存储介质 | |
CN108965711B (zh) | 视频处理方法及装置 | |
US11250540B2 (en) | Image processing apparatus, image capturing system, image processing method, and recording medium | |
CN115174994A (zh) | 视频处理方法、装置、计算机设备及存储介质 | |
EP4044513A1 (en) | Method, apparatus and system for displaying alarm file | |
JP2019149785A (ja) | 映像変換装置及びプログラム | |
CN114363678A (zh) | 一种投屏方法及设备 | |
CN116966553A (zh) | 用于虚拟场景的信息同步方法、设备及程序产品 | |
CN112492331B (zh) | 直播方法、装置、***及存储介质 | |
CN115686405A (zh) | 一种显示方法及电子设备 | |
CN112312110B (zh) | 非暂态计算机可读介质、图像处理装置及图像处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40077380 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |