CN110191298B - 移动终端及其录屏中的视频旋转方法、计算机存储介质 - Google Patents
移动终端及其录屏中的视频旋转方法、计算机存储介质 Download PDFInfo
- Publication number
- CN110191298B CN110191298B CN201910310405.8A CN201910310405A CN110191298B CN 110191298 B CN110191298 B CN 110191298B CN 201910310405 A CN201910310405 A CN 201910310405A CN 110191298 B CN110191298 B CN 110191298B
- Authority
- CN
- China
- Prior art keywords
- video
- component
- video frame
- storage address
- mobile terminal
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims description 26
- 241000023320 Luma <angiosperm> Species 0.000 claims description 13
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000012723 sample buffer Substances 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 229910052754 neon Inorganic materials 0.000 description 2
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000013519 translation 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种移动终端及其录屏中的视频旋转方法、计算机存储介质,该视频旋转方法包括:获取录屏产生的视频帧;基于视频帧,获取视频分量以及每个视频分量的存储地址;在视频帧旋转时,根据预设规则更新每个视频分量的存储地址,并将视频分量拷贝到更新后的存储地址。通过上述方法,实现了移动终端的横竖屏旋转功能,画面能无缝跟随终端的屏幕方向旋转,为视频录制、网络直播等产品提供底层技术支持。
Description
技术领域
本申请涉及视频处理技术领域,特别是涉及一种移动终端及其录屏中的视频旋转方法、计算机存储介质。
背景技术
IOS(原名iPhone OS,自IOS 4后改名为IOS)是为一些移动设备所开发的专有移动操作***,所支持的设备包括iPhone、iPod touch和iPad。
Replaykit是IOS对屏幕进行直播推出的框架,ReplayKit框架作用是从屏幕录制或流式传输视频,以及来自应用和麦克风的音频。使用ReplayKit框架,用户可以从屏幕录制视频,从应用程序和麦克风录制音频。
由于Replaykit返回的视频帧都是采用CVPixelBuffer封装的方式,无论终端屏幕方向是否改变,Replaykit返回的视频帧都是处于竖屏状态。Replaykit工具箱中无法对视频帧做任何旋转。
发明内容
为解决上述问题,本申请提供了一种移动终端及其录屏中的视频旋转方法、计算机存储介质,能够解决录屏中产生的视频帧无法旋转的问题。
本申请采用的一个技术方案是:提供一种录屏中的的视频旋转方法,所述视频旋转方法包括:获取录屏产生的视频帧;基于所述视频帧,获取视频分量以及每个所述视频分量的存储地址;在所述视频帧旋转时,根据预设规则更新每个所述视频分量的存储地址,并将所述视频分量拷贝到更新后的存储地址。
本申请采用的另一个技术方案是:提供一种移动终端,所述移动终端包括:获取模块,用于获取录屏产生的视频帧;处理模块,用于基于所述视频帧,获取视频分量以及每个所述视频分量的存储地址;还用于在所述视频帧旋转时,根据预设规则更新每个所述视频分量的存储地址,并将所述视频分量拷贝到更新后的存储地址。
本申请采用的另一个技术方案是:提供一种移动终端,所述移动终端包括处理器、存储器以及显示屏;其中,所述显示屏用于显示画面,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如上述的视频旋转方法。
本申请采用的另一个技术方案是:提供一种计算机存储介质,所述计算机存储介质存储有程序数据,程序数据在被处理器执行时,用以实现如上述的视频旋转方法。
本申请提供的录屏中的视频旋转方法包括:移动终端获取录屏产生的视频帧;基于视频帧,获取视频分量以及每个视频分量的存储地址;在视频帧旋转时,根据预设规则更新每个视频分量的存储地址,并将视频分量拷贝到更新后的存储地址;移动终端在需要旋转视频帧时,根据旋转的角度将每个视频分量的存储地址更新到旋转后的存储地址,然后将视频分量拷贝到更新后的存储地址,从而实现移动终端的横竖屏旋转功能,为视频录制、网络直播等产品提供底层技术支持。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的录屏中的视频旋转方法第一实施例的流程示意图;
图2是本申请提供的录屏中的视频旋转方法第二实施例的流程示意图;
图3是本申请提供的录屏中的视频旋转方法第三实施例的流程示意图;
图4是本申请提供的录屏中的视频旋转方法第四实施例的流程示意图;
图5是本申请移动终端第一实施例的结构示意图;
图6是本申请移动终端第二实施例的结构示意图;
图7是本申请提供的计算机存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参阅图1,图1是本申请提供的录屏中的视频旋转方法第一实施例的流程示意图。图1的视频旋转方法应用于一种具有视频帧收发功能和处理功能的移动终端或者电子设备,其中,移动终端或者电子设备可以搭载IOS操作***。
本实施例的视频旋转方法包括:
步骤101:获取录屏产生的视频帧。
在IOS操作***中,ReplayKit开发工具箱的数据返回主要包括音频帧和视频帧。
其中,音频帧包括RP Sample Buffer Type Audio App,即App(application,应用程序)内部音频数据内容,以下简称App音频,和RP Sample Buffer Type Audio App,即麦克风音频数据内容,以下简称Mic音频。
其中,视频帧,即RP Sample Buffer Type Video,为裸视频帧数据内容。
可以理解的,ReplayKit框架是用于进行录屏的一个框架,在录屏的过程中,一方面有来自App的音频,如视频App、游戏App、音乐App等,另一方面又来自麦克风接收的音频,如用户说话。
可选的,初始化时分别创建App音频线程安全列表、Mic音频线程安全列表和视频线程安全列表。在收到ReplayKit音频帧时,在各自的线程中将其***线程安全列表,使得Replaykit能够迅速返回,尽可能地做到不阻塞ReplayKit的线程。
可以理解的是,ReplayKit的线程只用于读取和写入应用音频、麦克风音频以及视频帧。
可以理解的,App音频、Mic音频以及视频帧读取时,如果出现阻塞情况,则会导致音频停顿与跳跃问题,视频帧不连续与画面来回跳问题,所以应当确保不阻塞ReplayKit的线程。
可选的,在一实施例中,在接收到App音频时,***至App音频线程安全列表;在接收到Mic音频时,***至Mic音频线程安全列表;在接收到视频帧时,***至视频线程安全列表。
具体地,在初始化时创建视频线程安全列表,在收到ReplayKit的视频帧时,在接收线程中将视频帧***视频线程安全列表,使得Replaykit能够迅速返回,尽可能地做到不阻塞ReplayKit的线程。
可以进一步理解的为,获取到录屏产生的应用音频、麦克风音频和视频帧,将录屏产生的应用音频和麦克风音频交给独立的第一线程,将录屏产生的视频帧交给独立的第二线程。
进一步地,ReplayKit工具箱中返回的视频帧中存在一个标记位,移动终端读取标记位的值,并转换为对应的横竖屏值。
由于ReplayKit工具箱中返回的视频帧采用CVPixelBuffer的封装方式,大小为终端屏幕分辨率按照16对齐后的数值,数据格式为YUVNV12(420f)。不管移动终端屏幕方向如何,ReplayKit工具箱中返回的视频帧永远处于竖屏状态,即由ReplayKit工具箱返回的视频帧的标记位转换的横竖屏值为一固定值。
因此,在获取ReplayKit工具箱中返回的视频帧后,移动终端可以根据横竖屏值判断终端屏幕的状态。若终端屏幕的状态与视频帧的横竖屏值对应的屏幕状态不同,则基于终端屏幕的状态调整视频帧的横竖屏值,并根据调整后的横竖屏值设置视频帧的横竖屏状态。
步骤102:基于视频帧,获取视频分量以及每个视频分量的存储地址。
其中,移动终端对每个视频帧进行分析,得到每个视频帧的视频分量以及每个视频分量对应的存储地址。
具体地,每个视频帧的视频分量包括明亮度(Luminance或Luma)分量Y、第一色度(Chrominance或Chroma)分量U以及第二色度分量V。其中,明亮度分量即灰度值;第一色度分量和第二色度分量作用是描述影像色彩及饱和度,用于指定像素的颜色。
视频帧的明亮度分量、第一色度分量以及第二色度分量按照顺序存储到存储地址中,具体请参见以下地址表:
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 |
Y7 | Y8 | Y9 | Y10 | Y11 | Y12 |
Y13 | Y14 | Y15 | Y16 | Y17 | Y18 |
Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
U1 | U2 | U3 | U4 | U5 | U6 |
V1 | V2 | V3 | V4 | V5 | V6 |
步骤103:在视频帧旋转时,根据预设规则更新每个视频分量的存储地址,并将视频分量拷贝到更新后的存储地址。
其中,当视频帧需要旋转时,移动终端根据预设规则调整明亮度分量、第一色度分量以及第二色度分量的存储地址,并将明亮度分量、第一色度分量以及第二色度分量拷贝到调整后的存储地址。在本实施例中,调整的方式可以为旋转、平移、置换、翻转等方式。例如,当移动终端将明亮度分量、第一色度分量以及第二色度分量的存储地址对称翻转时,明亮度分量、第一色度分量以及第二色度分量拷贝到翻转后的存储地址。其中,地址表可以由上表更新为:
Y6 | Y5 | Y4 | Y3 | Y2 | Y1 |
Y12 | Y11 | Y10 | Y9 | Y8 | Y7 |
Y18 | Y17 | Y16 | Y15 | Y14 | Y13 |
Y24 | Y23 | Y22 | Y21 | Y20 | Y19 |
U6 | U5 | U4 | U3 | U2 | U1 |
V6 | V5 | V4 | V3 | V2 | V1 |
在上述实施例中,移动终端获取录屏产生的视频帧;基于视频帧,获取视频分量以及每个视频分量的存储地址;在视频帧旋转时,根据预设规则更新每个视频分量的存储地址,并将视频分量拷贝到更新后的存储地址;移动终端在需要旋转视频帧时,根据旋转的角度将每个视频分量的存储地址更新到旋转后的存储地址,然后将视频分量拷贝到更新后的存储地址,从而实现移动终端的横竖屏旋转功能,为视频录制、网络直播等产品提供底层技术支持。
对于图1所示实施例中的步骤101之后,本申请进一步提出了另一种具体的方法。具体请参阅图2,图2是本申请提供的录屏中的视频旋转方法第二实施例的流程示意图。
具体在上述实施例中,ReplayKit工具箱中返回的视频是采用CVPixelBuffer封装的YUV NV12(420f)格式,这种格式中明亮度分量连续存储,第一色度分量以及第二色度分量交替存储。但是420f格式的视频帧由于采用第一色度分量以及第二色度分量交替存储的存储方式,这种格式的视频帧不便于旋转处理。因此在对视频帧进行旋转处理之前,移动终端需要对视频帧的格式进行转换,以利于视频帧旋转处理。
为了对ReplayKit工具箱返回的视频帧进行格式转换,本实施例的视频旋转方法具体提出了以下方法:
步骤201:判断视频帧的视频格式是否与预设视频格式相同。
其中,移动终端设置一预设视频格式。预设视频格式可以为I420(f420)格式,I420(f420)格式中连续存储明亮度分量,而后连续存储第一色度分量,最后连续存储第二色度分量。在旋转时,只需要对连续存储的明亮度分量、第一色度分量以及第二色度分量分别应用算法进行旋转。
具体地,I420(f420)格式中三个视频分量均为平面格式,即分别存在三个Byte型数组中。在其它实施例中,移动终端设置的预设视频格式也可以为其它平面格式,例如YV12等。
移动终端获取需要进行旋转处理的视频帧后,判断视频帧的视频格式是否与预设视频格式相同。若是,则移动终端可以直接对该视频帧进行旋转处理;若否,则进入步骤S202。
步骤202:基于预设视频格式对视频帧的视频格式进行转换。
其中,移动终端可以将ReplayKit工具箱中返回的视频帧的视频格式由NV12(420f)格式转换为预设视频格式,即I420(f420)格式。
具体地,移动终端将NV12格式的Y通道转换为I420格式的Y通道;将NV12格式的U通道拆分出来,转换为I420的U通道;将NV12的V通道拆分出来,转换为I420的V通道,从而将视频帧的格式转换为I420格式。
在其它实施例中,移动终端可以同时对ReplayKit工具箱中返回的视频帧进行格式转换和旋转处理。例如,移动终端将NV12的Y通道旋转为I420的Y通道;将NV12的U通道拆分出来,旋转为I420的U通道;将NV12的V通道拆分出来,旋转为I420的V通道。
上述算法和优化处理均可以通过Objective-C或C语言代码直接实现,也可以通过移动终端中ARM指令集中的NEON指令集按照8位块进行处理。
在本实施例中,移动终端将ReplayKit工具箱中返回的视频帧转换为预设视频格式,预设视频格式中连续存储明亮度分量,而后连续存储第一色度分量,最后连续存储第二色度分量;在旋转时,只需要对连续存储的明亮度分量、第一色度分量以及第二色度分量分别应用算法进行旋转,便于对视频帧做旋转处理。
对于图1所示实施例中的步骤S103,本申请进一步提出了另一种具体的方法。具体请参阅图3,图3是本申请提供的录屏中的视频旋转方法第三实施例的流程示意图。
本实施例的视频旋转方法具体提出了以下方法:
步骤301:在视频帧顺时针旋转90°或270°时,根据90°或270°更新明亮度分量、第一色度分量以及第二色度分量的存储地址。
其中,当视频帧需要顺时针旋转90°时,移动终端根据顺时针90°更新明亮度分量、第一色度分量以及第二色度分量的存储地址。
具体地,移动终端分别定位到明亮度分量、第一色度分量和第二色度分量,旋转处理前的三种视频分量的存储地址的原始地址表如下:
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 |
Y7 | Y8 | Y9 | Y10 | Y11 | Y12 |
Y13 | Y14 | Y15 | Y16 | Y17 | Y18 |
Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
U1 | U2 | U3 | U4 | U5 | U6 |
V1 | V2 | V3 | V4 | V5 | V6 |
移动终端基于上述原始地址表对三种视频分量的存储地址进行顺时针90°旋转,旋转后的地址表由上表更新为:
若需要将视频帧顺时针旋转270°时,移动终端基于上述原始地址表对三种视频分量的存储地址进行顺时针270°旋转,旋转后的地址表由上表更新为:
Y1 | Y7 | Y13 | Y19 | U1 | V1 |
Y2 | Y8 | Y14 | Y20 | U2 | V2 |
Y3 | Y9 | Y15 | Y21 | U3 | V3 |
Y4 | Y10 | Y16 | Y22 | U4 | V4 |
Y5 | Y11 | Y17 | Y23 | U5 | V5 |
Y6 | Y12 | Y18 | Y24 | U6 | V6 |
进一步地,若需要将视频帧顺时针旋转180°时,移动终端基于上述原始地址表直接对三种视频分量的存储进行上下置换,以更新明亮度分量、第一色度分量以及第二色度分量的存储地址,旋转后的地址表由上表更新为:
V1 | V2 | V3 | V4 | V5 | V6 |
U1 | U2 | U3 | U4 | U5 | U6 |
Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y13 | Y14 | Y15 | Y16 | Y17 | Y18 |
Y7 | Y8 | Y9 | Y10 | Y11 | Y12 |
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 |
步骤302:将明亮度分量、第一色度分量以及第二色度分量拷贝到更新后的存储地址。
其中,旋转后的地址表更新完成后,移动终端基于更新后的存储地址,重新将明亮度分量、第一色度分量以及第二色度分量拷贝到更新后的存储地址。
实现上述旋转处理步骤,移动终端可以通过Objective-C或C语言代码直接实现,也可以通过移动终端中ARM指令集中的NEON指令集按照8位块进行处理。
在本实施例中,移动终端基于不同的视频旋转角度更新存储地址的地址表,并基于更新后的地址表将明亮度分量、第一色度分量以及第二色度分量拷贝到更新后的存储地址,以完成对于视频帧的旋转处理。
对于图1所示实施例中的步骤S103之后,本申请进一步提出了另一种具体的方法。具体地请参阅图4,图4是本申请提供的录屏中的视频旋转方法第四实施例的流程示意图。
具体在上述实施例中,在ReplayKit工具箱中,如果屏幕画面完全静止,则不会返回视频帧。此时,移动终端只需要重复发送上一个视频帧。而由于是重复发送上一个视频帧,所以移动终端默认会对上一个视频帧进行编码。重复发送同一视频帧时,若每次发送移动终端都需要对视频帧进行格式转换和旋转处理,处理器需要重复多次相同的工作,这就会造成资源浪费。
为了提高资源利用率,本实施例的视频旋转方法具体提出了以下方法:
步骤401:在预设时间内判断是否获取新的视频帧。
其中,移动终端在预设时间内判断是否接收到ReplayKit工具箱返回的新的视频帧。若没有,则进入步骤S402。
步骤402:重复发送经过旋转处理后的视频帧。
其中,在上述视频旋转方法中,移动终端可以存储经过旋转处理后的视频帧。若出现终端屏幕处于完全静止状态时,移动终端采用重复发送内存缓存列表的列表头中的视频帧的补帧策略。此时,移动终端重复发送经过旋转处理后的视频帧,而不同对列表头的视频帧重新进行格式转换和旋转处理。
在本实施例中,当移动终端检测到终端屏幕画面完全静止时,移动终端采用重复发送内存缓存列表的列表头中的视频帧的补帧策略;此时,移动终端可以重复发送已经经过旋转处理的视频帧,避免重复的格式转换和旋转处理工作,减少处理器运算量和资源浪费。
为实现上述实施例的视频旋转方法,本申请提供了一种移动终端,具体请参阅图5,图5是本申请移动终端第一实施例的结构示意图。该移动终端50的包括获取模块51和处理模块52。
其中,获取模块51,用于获取录屏产生的视频帧。
处理模块52,用于基于视频帧,获取视频分量以及每个视频分量的存储地址;还用于在视频帧旋转时,根据预设规则更新每个视频分量的存储地址,并将视频分量拷贝到更新后的存储地址。
请继续参阅图6,图6是本申请移动终端第二实施例的结构示意图,该移动终端60包括处理器61、存储器62以及显示屏63。
该移动终端60可以是以IOS为操作***的终端,如手机、平板电脑、智能穿戴设备等等,其中,该显示屏63可以是液晶显示屏(LCD),也可以是有机发光二极管显示屏(OLED),其用于显示视频画面,如移动终端60中App的操作界面,或者***的操作界面。
其中,存储器62中存储有程序数据,处理器61用于执行该程序数据以实现以下的方法步骤:获取录屏产生的视频帧;基于视频帧,获取视频分量以及每个视频分量的存储地址;在视频帧旋转时,根据预设规则更新每个视频分量的存储地址,并将视频分量拷贝到更新后的存储地址。
请继续参阅图7,图7是本申请提供的计算机存储介质一实施例的结构示意图,该计算机存储介质70中存储有程序数据71,该程序数据71在被处理器执行时,用以实现以下的方法步骤:
获取录屏产生的视频帧;基于视频帧,获取视频分量以及每个视频分量的存储地址;在视频帧旋转时,根据预设规则更新每个视频分量的存储地址,并将视频分量拷贝到更新后的存储地址。
本申请的实施例以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (7)
1.一种录屏中的视频旋转方法,其特征在于,所述视频旋转方法包括:
获取录屏产生的视频帧;
基于所述视频帧,获取视频分量以及每个所述视频分量的存储地址;
在所述视频帧旋转时,根据预设规则更新每个所述视频分量的存储地址,并将所述视频分量拷贝到更新后的存储地址;
在预设时间内判断是否获取新的视频帧;
若否,则重复发送经过旋转处理后的所述视频帧;
所述视频分量包括明亮度分量、第一色度分量以及第二色度分量;
所述获取视频分量以及每个所述视频分量的存储地址的步骤,进一步包括:
按照顺序将所述视频帧的所述明亮度分量、所述第一色度分量以及所述第二色度分量存储到所述存储地址;
所述获取录屏产生的视频帧的步骤之后,还包括:
判断所述视频帧的视频格式是否与预设视频格式相同,其中,所述预设视频格式为I420格式;
若否,则基于所述预设视频格式对所述视频帧的视频格式进行转换;其中,所述预设视频格式的视频帧中,每个所述视频分量按照顺序分别连续存储在对应的所述存储地址;
所述在所述视频帧旋转时,根据预设规则更新每个所述视频分量的存储地址,并将所述视频分量拷贝到更新后的存储地址的步骤,进一步包括:
在所述视频帧顺时针旋转90°或270°时,根据90°或270°更新所述明亮度分量、所述第一色度分量以及所述第二色度分量的存储地址;
将所述明亮度分量、所述第一色度分量以及所述第二色度分量拷贝到更新后的存储地址。
2.根据权利要求1所述的视频旋转方法,其特征在于,所述根据预设规则将每个所述视频分量拷贝到对应旋转的所述存储地址的步骤,进一步包括:
若要将所述视频帧顺时针旋转180°时,将所述明亮度分量、所述第一色度分量以及所述第二色度分量的存储地址上下置换,以更新所述明亮度分量、所述第一色度分量以及所述第二色度分量的存储地址;
将所述明亮度分量、所述第一色度分量以及所述第二色度分量拷贝到更新后的存储地址。
3.根据权利要求1所述的视频旋转方法,其特征在于,所述在所述视频帧旋转时,根据预设规则更新每个所述视频分量的存储地址的步骤,进一步包括:
判断所述视频帧的视频格式是否与预设视频格式相同;
若否,则分别提取每个所述视频分量的存储地址,并基于所述预设视频格式和所述预设规则更新每个所述视频分量的存储地址,以使每个所述视频分量分别连续存储在对应的所述存储地址。
4.根据权利要求1所述的视频旋转方法,其特征在于,所述获取录屏产生的视频帧之后,还包括:
获取所述视频帧的标记位,并将所述标记位转换为对应的横竖屏值;
基于终端屏幕状态调整所述横竖屏值,并根据调整后的所述横竖屏值设置所述视频帧的横竖屏状态。
5.一种移动终端,其特征在于,所述移动终端包括:
获取模块,用于获取录屏产生的视频帧;
处理模块,用于基于所述视频帧,获取视频分量以及每个所述视频分量的存储地址;还用于在所述视频帧旋转时,根据预设规则更新每个所述视频分量的存储地址,并将所述视频分量拷贝到更新后的存储地址;还用于在预设时间内判断没有获取新的视频帧时,重复发送经过旋转处理后的视频帧;
所述视频分量包括明亮度分量、第一色度分量以及第二色度分量;
所述处理模块,还用于按照顺序将视频帧的所述明亮度分量、所述第一色度分量以及所述第二色度分量存储到所述存储地址;
所述处理模块,还用于在所述视频帧的视频格式与预设视频格式不同时,则基于所述预设视频格式对所述视频帧的视频格式进行转换;其中,所述预设视频格式的视频帧中,每个所述视频分量按照顺序分别连续存储在对应的所述存储地址;其中,所述预设视频格式为I420格式;
所述处理模块,还用于在所述视频帧顺时针旋转90°或270°时,根据90°或270°更新所述明亮度分量、所述第一色度分量以及所述第二色度分量的存储地址;将所述明亮度分量、所述第一色度分量以及所述第二色度分量拷贝到更新后的存储地址。
6.一种移动终端,其特征在于,所述移动终端包括处理器、存储器以及显示屏;其中,所述显示屏用于显示画面,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如权利要求1-4任一项所述的视频旋转方法。
7.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有程序数据,所述程序数据在被处理器执行时,用于实现如权利要求1-4任一项所述的视频旋转方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910310405.8A CN110191298B (zh) | 2019-04-17 | 2019-04-17 | 移动终端及其录屏中的视频旋转方法、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910310405.8A CN110191298B (zh) | 2019-04-17 | 2019-04-17 | 移动终端及其录屏中的视频旋转方法、计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110191298A CN110191298A (zh) | 2019-08-30 |
CN110191298B true CN110191298B (zh) | 2022-05-17 |
Family
ID=67714685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910310405.8A Active CN110191298B (zh) | 2019-04-17 | 2019-04-17 | 移动终端及其录屏中的视频旋转方法、计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110191298B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002084414A (ja) * | 2000-07-05 | 2002-03-22 | Canon Inc | 画像処理方法及び装置及びプログラム並びに記憶媒体 |
JP4219939B2 (ja) * | 2006-02-28 | 2009-02-04 | 株式会社メガチップス | 画像入力装置における信号処理回路 |
US8098959B2 (en) * | 2008-10-29 | 2012-01-17 | Aptina Imaging Corporation | Method and system for frame rotation within a JPEG compressed pipeline |
KR20110048794A (ko) * | 2009-11-03 | 2011-05-12 | 삼성전자주식회사 | 이미지 프로세서 및 이를 포함하는 전자 장치 |
US8718406B2 (en) * | 2010-12-23 | 2014-05-06 | Marvell World Trade Ltd. | Method and apparatus for video frame rotation |
CN103679630A (zh) * | 2012-09-03 | 2014-03-26 | 三星电子(中国)研发中心 | 一种视频旋转方法 |
CN108076303A (zh) * | 2016-11-11 | 2018-05-25 | 中兴通讯股份有限公司 | 一种视频图像显示方法和装置 |
CN106817545B (zh) * | 2016-12-30 | 2019-08-02 | 成都傅立叶电子科技有限公司 | 一种快速多分辨率视频图像镜像旋转处理*** |
CN106846255B (zh) * | 2017-02-23 | 2024-01-16 | 新岸线(北京)科技集团有限公司 | 图像旋转实现方法及装置 |
-
2019
- 2019-04-17 CN CN201910310405.8A patent/CN110191298B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110191298A (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10825130B2 (en) | Method and apparatus for displaying picture content in application, and storage medium | |
KR102617258B1 (ko) | 이미지 프로세싱 방법 및 장치 | |
CN106651992B (zh) | 优化Android资源图片的方法及*** | |
CN103823620A (zh) | 一种屏幕适配的方法和装置 | |
US8001213B2 (en) | Method, apparatus and computer program product for providing unrestricted content on a user terminal | |
EP2702583A1 (en) | Graphic sharing | |
US10419798B2 (en) | Method and apparatus for just-in-time transcoding | |
CN107690074A (zh) | 视频编码和还原方法、视频播放***以及相关设备 | |
WO2022227902A1 (zh) | 视频处理方法、装置、电子设备及可读存储介质 | |
CN106062662A (zh) | 用于在dram存储器***中提供省电的静态图像显示刷新的***和方法 | |
EP4036841A1 (en) | Image processing method and apparatus | |
US8878867B2 (en) | Transparency information in image or video format not natively supporting transparency | |
KR20170047489A (ko) | 영상처리장치, 영상처리방법 및 컴퓨터 판독가능 기록매체 | |
CN106095472A (zh) | 一种头像设置方法及装置 | |
US20200092531A1 (en) | Video image presentation and encapsulation method and video image presentation and encapsulation apparatus | |
CN110191298B (zh) | 移动终端及其录屏中的视频旋转方法、计算机存储介质 | |
JP2023523393A (ja) | ビデオベース点群ストリームのisobmffコンテナにおける部分的なアクセスサポート | |
WO2023055075A1 (en) | Standard dynamic range (sdr) / hybrid log-gamma (hlg) with high dynamic range (hdr) 10+ | |
KR20090064486A (ko) | 이동통신망에서의 인터넷 웹페이지 제공 시스템 및 방법 | |
CA2815609C (en) | Transparency information in image or video format not natively supporting transparency | |
CN101287213A (zh) | 一种终端初始化的方法、装置和终端 | |
US20170124029A1 (en) | System and method of producing dynamically customized images | |
CN105320779A (zh) | 一种基于二维码接口的无线终端信息交换***及其应用方法 | |
US20240087169A1 (en) | Realtime conversion of macroblocks to signed distance fields to improve text clarity in video streaming | |
JP2007304832A (ja) | メモリアクセス制御装置、メモリアクセスシステム、情報再生装置及び電子機器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |