CN114143601A - 裁剪视频的方法、装置、电子设备、存储介质及程序产品 - Google Patents
裁剪视频的方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114143601A CN114143601A CN202111477214.4A CN202111477214A CN114143601A CN 114143601 A CN114143601 A CN 114143601A CN 202111477214 A CN202111477214 A CN 202111477214A CN 114143601 A CN114143601 A CN 114143601A
- Authority
- CN
- China
- Prior art keywords
- video
- data
- group
- pictures
- time
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000005520 cutting process Methods 0.000 title claims abstract description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 22
- 238000013500 data storage Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 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
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本公开提供了一种裁剪视频的方法、装置、电子设备、存储介质及程序产品。所述方法包括:获取视频文件的裁剪范围的起点时间和终点时间;确定视频文件中的第一画面组和第二画面组;对第一画面组和第二画面组的视频编码数据选择性地解码和编码,得到第一视频编码数据,并基于第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据;第二视频编码数据为视频文件中处于第一画面组与第二画面组之间的画面组的视频编码数据;基于视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据;对裁剪后的视频编码数据和裁剪后的音频编码数据进行视音频复用,得到裁剪后的视频文件。根据本公开能够提升裁剪视频的处理速度。
Description
技术领域
本公开总体说来涉及视频技术领域,更具体地讲,涉及一种裁剪视频的方法、装置、电子设备、存储介质及程序产品。
背景技术
视频时间裁剪的功能是终端(例如,移动端)编辑视频的一种常见功能。例如,用户在移动端对一个原始视频进行编辑时,可以选择视频中的某一段时间的内容,进行裁剪操作以得到新的视频,即,新的视频中仅包括这一段时间的内容。这种时间上的裁剪操作常用于视频剪辑、集锦制作等场景。然而,现有的视频裁剪方式的处理耗时较长,还有待进一步降低。
发明内容
本公开的示例性实施例在于提供一种裁剪视频的方法、装置、电子设备、存储介质及程序产品,以至少解决上述相关技术中的问题。
根据本公开实施例的第一方面,提供一种裁剪视频的方法,包括:获取视频文件的裁剪范围的起点时间和终点时间;确定所述视频文件中的第一画面组和第二画面组;其中,所述第一画面组为所述起点时间所在的画面组,所述第二画面组为所述终点时间所在的画面组;对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,得到第一视频编码数据,并基于所述第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据;其中,所述第二视频编码数据为所述视频文件中处于第一画面组与第二画面组之间的画面组的视频编码数据;基于所述视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据;对所述裁剪后的视频编码数据和所述裁剪后的音频编码数据进行视音频复用,得到裁剪后的视频文件。
可选地,当所述起点时间为所述第一画面组的起始时间,且所述终点时间非所述第二画面组的终止时间时,所述对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,包括:对所述第二画面组中的视频编码数据之中的从所述第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
可选地,当所述起点时间非所述第一画面组的起始时间,且所述终点时间为所述第二画面组的终止时间时,所述对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,包括:对所述第一画面组中的视频编码数据执行解码,得到所述第一画面组中的视频解码数据;对所述第一画面组中的视频解码数据之中的从所述起点时间至所述第一画面组的终止时间的视频解码数据执行编码。
可选地,当所述起点时间非所述第一画面组的起始时间,且所述终点时间非所述第二画面组的终止时间时,所述对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,包括:对所述第一画面组中的视频编码数据执行解码,得到所述第一画面组中的视频解码数据,并对所述第一画面组中的视频解码数据之中的从所述起点时间至所述第一画面组的终止时间的视频解码数据执行编码;对所述第二画面组中的视频编码数据之中的从所述第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
可选地,所述基于所述第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据,包括:基于所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳,对所述第一视频编码数据和所述第二视频编码数据进行合并,得到裁剪后的视频编码数据;其中,所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳为:其原始时间戳减去所述起点时间。
可选地,所述基于所述视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据,包括:将所述视频文件中从所述起点时间至所述终点时间的音频编码数据的时间戳修改为:其原始时间戳减去所述起点时间,并将修改了时间戳的音频编码数据作为裁剪后的音频编码数据。
根据本公开实施例的第二方面,提供一种裁剪视频的装置,包括:裁剪时间获取单元,被配置为获取视频文件的裁剪范围的起点时间和终点时间;画面组确定单元,被配置为确定所述视频文件中的第一画面组和第二画面组;其中,所述第一画面组为所述起点时间所在的画面组,所述第二画面组为所述终点时间所在的画面组;视频裁剪单元,被配置为对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,得到第一视频编码数据,并基于所述第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据;其中,所述第二视频编码数据为所述视频文件中处于第一画面组与第二画面组之间的画面组的视频编码数据;音频裁剪单元,被配置为基于所述视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据;复用单元,被配置为对所述裁剪后的视频编码数据和所述裁剪后的音频编码数据进行视音频复用,得到裁剪后的视频文件。
可选地,视频裁剪单元被配置为当所述起点时间为所述第一画面组的起始时间,且所述终点时间非所述第二画面组的终止时间时,对所述第二画面组中的视频编码数据之中的从所述第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
可选地,视频裁剪单元被配置为当所述起点时间非所述第一画面组的起始时间,且所述终点时间为所述第二画面组的终止时间时,对所述第一画面组中的视频编码数据执行解码,得到所述第一画面组中的视频解码数据;并对所述第一画面组中的视频解码数据之中的从所述起点时间至所述第一画面组的终止时间的视频解码数据执行编码。
可选地,视频裁剪单元被配置为:当所述起点时间非所述第一画面组的起始时间,且所述终点时间非所述第二画面组的终止时间时,对所述第一画面组中的视频编码数据执行解码,得到所述第一画面组中的视频解码数据,并对所述第一画面组中的视频解码数据之中的从所述起点时间至所述第一画面组的终止时间的视频解码数据执行编码;并且,对所述第二画面组中的视频编码数据之中的从所述第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
可选地,视频裁剪单元被配置为基于所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳,对所述第一视频编码数据和所述第二视频编码数据进行合并,得到裁剪后的视频编码数据;其中,所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳为:其原始时间戳减去所述起点时间。
可选地,音频裁剪单元被配置为将所述视频文件中从所述起点时间至所述终点时间的音频编码数据的时间戳修改为:其原始时间戳减去所述起点时间,并将修改了时间戳的音频编码数据作为裁剪后的音频编码数据。
根据本公开实施例的第三方面,提供一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如上所述的裁剪视频的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令被至少一个处理器运行时,促使所述至少一个处理器执行如上所述的裁剪视频的方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机指令,所述计算机指令被至少一个处理器执行时实现如上所述的裁剪视频的方法。
根据本公开的示例性实施例的裁剪视频的方法、装置、电子设备、存储介质及程序产品,避免了在裁剪过程中对整个裁剪范围内的视频编码数据进行解码和编码,仅对少部分必要的视频编码数据进行解码和编码,从而能够提升裁剪视频的处理速度,从而降低用户的等待耗时,可以让用户以相对较快的时间获取到裁剪得到的最终视频。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1示出根据本公开示例性实施例的裁剪视频的方法的流程图;
图2示出根据本公开的示例性实施例的视频属性信息的获取方法的流程图;
图3示出根据本公开的示例性实施例的裁剪视频的方法的示例;
图4示出根据本公开示例性实施例的裁剪视频的装置的结构框图;
图5示出根据本公开示例性实施例的电子设备的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
图1示出根据本公开示例性实施例的裁剪视频的方法的流程图。所述方法可应用于视频时间裁剪的场景下。
作为示例,所述方法可由电子设备(例如,电子终端)来执行。
作为示例,所述方法可通过计算机程序来实现。例如,所述方法可通过安装在电子终端中的应用来执行,或者通过电子终端的操作系统中实现的功能程序来执行。作为示例,所述电子终端可以是移动通信终端(例如,智能手机)、个人计算机、平板电脑、数字多媒体播放器等电子终端。
参照图1,在步骤S101,获取视频文件的裁剪范围的起点时间和终点时间。
裁剪范围为需要从视频文件中裁剪得到的那部分内容(也即,某一时间段内的内容)。
下面,裁剪范围的起点时间也称为start_time,裁剪范围的终点时间也称为stop_time。
在步骤S102,确定第一画面组和第二画面组。第一画面组GOP(group ofpictures)为所述起点时间所在的画面组,第二画面组为所述终点时间所在的画面组。换言之,所述起点时间处于第一GOP所对应的时间段内,所述终点时间处于第二GOP所对应的时间段内。
作为示例,GOP指的是两个I帧之间的间隔,从当前的I帧开始到下一个I帧的前一帧为止,计作一个GOP。I帧Intra-coded picture(帧内编码图像帧)可不参考其他图像帧,只利用本帧的信息进行编码。
在步骤S103,对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,得到第一视频编码数据,并基于所述第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据。
所述第二视频编码数据为所述视频文件中处于第一画面组与第二画面组之间的画面组的视频编码数据。
作为示例,可对第一画面组的视频编码数据和第二画面组之中的从第二画面组的起始时间到所述终点时间的视频编码数据选择性地解码和编码,得到第一视频编码数据。
此外,作为示例,根据本公开示例性实施例的裁剪视频的方法还可包括:从所述视频文件中获取从第一画面组的起始时间至所述终点时间的视频编码数据。例如,可对所述视频文件中从第一画面组的起始时间至所述终点时间内的数据执行视音频解复用,以从所述视频文件中得到从第一画面组的起始时间至所述终点时间的视频编码数据。
作为示例,视音频解复用demux(也称为,视音频分离)可将封装格式数据(例如mp4)中的视频编码数据(例如H.264)和音频编码数据(例如AAC)分离开,在这个过程中并不涉及编码和解码。
考虑到视频帧之间有参考关系,除了要对所述起点时间到所述终点时间范围内的数据执行视音频解复用以得到所述视频文件中所述起点时间到所述终点时间范围内的视频编码数据之外,还需要对第一画面组的起始时间到所述起点时间范围内的数据执行视音频解复用,以得到所述视频文件中第一画面组的起始时间到所述起点时间范围内的视频编码数据。
根据本公开的示例性实施例,不需要对从所述视频文件中获取的视频编码数据全部进行解码和编码,而仅是对获取的视频编码数据中的第一画面组和第二画面组的视频编码数据进行选择性地解码和编码,并且不需要对第二视频编码数据进行解码和编码。
作为示例,视频解码decode可将视频压缩编码数据,解码成为非压缩的视频原始数据。作为示例,视频编码encode是decode的逆过程,可将非压缩的视频原始数据压缩成编码数据,从而降低数据量。例如,视频编码可以是将像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。
在第一实施例中,当所述起点时间为第一画面组的起始时间时,对第一画面组中的视频编码数据不执行解码和编码。
在第二实施例中,当所述起点时间非第一画面组的起始时间时,对第一画面组中的视频编码数据执行解码,得到第一画面组中的视频解码数据;并对第一画面组中的视频解码数据之中的从所述起点时间至第一画面组的终止时间的视频解码数据执行编码。
在第三实施例中,当所述终点时间为第二画面组的终止时间时,对第二画面组中的视频编码数据不执行解码和编码。
在第四实施例中,当所述终点时间非第二画面组的终止时间时,对第二画面组中的视频编码数据之中的从第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
在第五实施例中,当所述起点时间为第一画面组的起始时间,且所述终点时间为第二画面组的终止时间时,对第一画面组和第二画面组的视频编码数据不执行解码和编码。这里,第一视频编码数据为:第一画面组和第二画面组的视频编码数据本身。
在第六实施例中,当所述起点时间非第一画面组的起始时间,且所述终点时间为第二画面组的终止时间时,对第一画面组中的视频编码数据执行解码,得到第一画面组中的视频解码数据;并对第一画面组中的视频解码数据之中的从所述起点时间至第一画面组的终止时间的视频解码数据执行编码,其中,对第二画面组中的视频编码数据不执行解码和编码。这里,第一视频编码数据包括:对第一画面组中的视频解码数据之中的从所述起点时间至第一画面组的终止时间的视频解码数据执行编码所得到的视频编码数据、和第二画面组中的视频编码数据。
在第七实施例中,当所述起点时间为第一画面组的起始时间,且所述终点时间非第二画面组的终止时间时,对第二画面组中的视频编码数据之中的从第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码,其中,对第一画面组中的视频编码数据不执行解码和编码。这里,第一视频编码数据包括:对第二画面组中的视频编码数据之中的从第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码所得到的视频编码数据、和第一画面组中的视频编码数据。
在第八实施例中,当所述起点时间非第一画面组的起始时间,且所述终点时间非第二画面组的终止时间时,对第一画面组中的视频编码数据执行解码,得到第一画面组中的视频解码数据,并对第一画面组中的视频解码数据之中的从所述起点时间至第一画面组的终止时间的视频解码数据执行编码;并且,对第二画面组中的视频编码数据之中的从第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。这里,第一视频编码数据包括:对第一画面组中的视频解码数据之中的从所述起点时间至第一画面组的终止时间的视频解码数据执行编码所得到的视频编码数据、和对第二画面组中的视频编码数据之中的从第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码所得到的视频编码数据。
作为示例,可将第一视频编码数据和第二视频编码数据的时间戳修改为:其原始时间戳减去所述起点时间,以得到裁剪后的视频编码数据。
作为示例,可基于所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳,对所述第一视频编码数据和所述第二视频编码数据进行合并,得到裁剪后的视频编码数据。
此外,作为示例,可通过下述方式对第一画面组和第二画面组的视频编码数据选择性地解码和编码:基于所述视频文件的视频属性信息,对第一画面组和第二画面组的视频编码数据选择性地解码和编码。
作为示例,视频属性信息可包括但不限于:视频的分辨率和/或视频的码率。
根据本实施例,可以保证重新编码得到的视频帧和原视频分辨率码率一致。
应该理解,可通过各种适当的方式来获取视频属性信息。作为示例,Android和iOS电子设备均可通过使用ffmpeg的avformat_open_input、av_find_best_stream来预解析原始视频文件,以得到原始视频的分辨率信息。作为另一示例,Android电子设备还可通过MediaMetadataRetriever来获取视频属性信息。作为另一示例,iOS电子设备还可通过AVAsset来获取视频属性信息。例如,图2示出使用ffmpeg的获取方式,视频文件的可解析的内容可包括但不限于以下项之中的至少一项:视频流、音频流、视频流参数、音频流参数、视频帧索引。
此外,作为示例,如果有视频的编辑阶段,可以省略预解析阶段,直接获取编辑预览阶段已经解析过的信息即可。
在步骤S104,基于所述视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据。
作为示例,根据本公开示例性实施例的裁剪视频的方法还可包括:从所述视频文件中获取从所述起点时间至所述终点时间的音频编码数据。例如,可对所述视频文件中从所述起点时间至所述终点时间内的数据执行视音频解复用,以从所述视频文件中得到从所述起点时间至所述终点时间的音频编码数据。
考虑到音频帧之间没有参考关系,可直接基于从所述视频文件中获取的音频编码数据,得到裁剪后的音频编码数据。具体说来,不需要对从所述视频文件中获取的音频编码数据执行音频解码及音频编码,而是基于这些音频编码数据直接得到裁剪后的音频编码数据。
作为示例,可将所述视频文件中从所述起点时间至所述终点时间的音频编码数据的时间戳修改为:其原始时间戳减去所述起点时间,并将修改了时间戳的音频编码数据作为裁剪后的音频编码数据。
应该理解,本公开对步骤S103和步骤S104的执行顺序不作限定,例如,步骤S103和步骤S104可并行执行。
在步骤S105,对所述裁剪后的视频编码数据和所述裁剪后的音频编码数据进行视音频复用,得到裁剪后的视频文件。
作为示例,视音频复用mux可将视频编码数据(例如H.264)和音频编码数据(例如AAC)合并到一个封装格式数据(例如MKV)中去,在这个过程中并不涉及编码和解码。
本公开考虑到:视频裁剪仅是对视频做一个时间范围的裁剪,并不涉及对原始视频的画面内容的更改(例如,添加滤镜等),且编解码过程极其耗时、并有可能带来视频质量损失,因此,可不对整个裁剪范围内的音视频进行编解码。
因此,根据本公开的实施例,避免了在裁剪过程中对整个裁剪范围内的视频编码数据做decode和encode,仅对少部分必要的视频编码数据做解码编码或不对任何部分做解码编码,而对剩余大部分或全部的视频编码数据直接做demux和mux,有效降低了整个裁剪处理的耗时,解决了用户等待时间过长的问题,提升了用户体验。
图3示出根据本公开的示例性实施例的裁剪视频的方法的示例。这里,所述起点时间非第一画面组的起始时间、且所述终点时间非第二画面组的终止时间。
如图3所示,获取裁剪范围的起点时间start_time和终点时间stop_time。
Android电子设备和iOS电子设备均可通过使用ffmpeg的av_seek_frame来seek原始视频文件到start_time所处的GOP(也即,第一GOP)的开头。将第一GOP的起始时间记为start_gop_begin,终止时间记为start_gop_end。
对视频文件中start_gop_begin到start_time范围内的视频编码数据(也即,源视频压缩包)进行demux和decode操作,对视频文件中start_time到start_gop_end范围内的视频编码数据进行demux、decode、encode、mux的操作,并通过减去start_time的方式修改时间戳。
将stop_time所处的GOP(也即,第二GOP)的起始时间记为stop_gop_begin,终止时间记为stop_gop_end。对视频文件中start_gop_end到stop_gop_begin范围内的所有GOP进行demux、mux的操作,并通过减去start_time的方式修改时间戳。
对视频文件中stop_gop_begin到stop_time范围内的视频编码数据进行demux、decode、encode、mux的操作,并通过减去start_time的方式修改时间戳。
在处理视频流的同时,可并行处理音频流,seek原始视频文件到start_time后,对start_time到stop_time范围内的原始音频编码数据进行demux、mux的操作,并通过减去start_time的方式修改时间戳。
作为示例,seek可指跳跃到视频的指定时间点开始处理。
作为示例,由于视频帧之间有参考关系,如果起点时间位于一个GOP的中间,后面的P帧和B帧可能需要参考同GOP内前面的I帧或P帧进行编解码,所以需要对第一个GOP进行demux、decode、encode、mux的操作。然后对后续的GOP,则无需decode和encode,直接进行demux和mux的操作。直到裁剪范围内的最后一个GOP,再进行demux、decode、encode、mux的操作。而音频流由于没有参考关系,只需seek到起点位置,对音频压缩包逐个进行demux、mux,直至裁剪范围的终点。
作为示例,P帧为Predictive-coded picture(预测编码图像帧),利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码。
作为示例,B帧为Bidirectionally-predicted picture(双向预测编码图像帧),提供最高的压缩比,它既需要之前的图像帧(I帧或P帧),也需要后来的图像帧(P帧),采用运动预测的方式进行帧间双向预测编码。
根据本实施例,除了裁剪范围开始和终止所对应的两个GOP,不需要对原始视频进行decoder和encoder,从而能够大幅降低整体视频的裁剪处理耗时,并做到视音频质量基本无损。
本公开的实施例提供的技术方案能够带来以下有益效果:一方面,提高了裁剪视频的处理速度,视音频编解码算法十分复杂,占据了裁剪视频的绝大部分时间,本公开因为省去了至少大部分视频帧和全部音频的编码和解码,所以节约了大量的时间;另一方面,裁剪后的视音频质量基本无损,因为大幅减少了视音频的编码和解码操作,所以基本不会有视音频的压缩损伤。
图4示出根据本公开示例性实施例的裁剪视频的装置的结构框图。
参照图4,根据本公开示例性实施例的裁剪视频的装置10包括:裁剪时间获取单元101、画面组确定单元102、视频裁剪单元103、音频裁剪单元104、复用单元105。
具体说来,裁剪时间获取单元101被配置为获取视频文件的裁剪范围的起点时间和终点时间。
画面组确定单元102被配置为确定第一画面组和第二画面组,其中,第一画面组为所述起点时间所在的画面组,第二画面组为所述终点时间所在的画面组。
视频裁剪单元103被配置为对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,得到第一视频编码数据,并基于所述第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据;其中,所述第二视频编码数据为所述视频文件中处于第一画面组与第二画面组之间的画面组的视频编码数据。
音频裁剪单元104被配置为基于所述视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据。
复用单元105被配置为对所述裁剪后的视频编码数据和所述裁剪后的音频编码数据进行视音频复用,得到裁剪后的视频文件。
作为示例,视频裁剪单元103可被配置为当所述起点时间为所述第一画面组的起始时间,且所述终点时间非所述第二画面组的终止时间时,对所述第二画面组中的视频编码数据之中的从所述第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
作为示例,视频裁剪单元103可被配置为当所述起点时间非所述第一画面组的起始时间,且所述终点时间为所述第二画面组的终止时间时,对所述第一画面组中的视频编码数据执行解码,得到所述第一画面组中的视频解码数据;并对所述第一画面组中的视频解码数据之中的从所述起点时间至所述第一画面组的终止时间的视频解码数据执行编码。
作为示例,视频裁剪单元103可被配置为:当所述起点时间非所述第一画面组的起始时间,且所述终点时间非所述第二画面组的终止时间时,对所述第一画面组中的视频编码数据执行解码,得到所述第一画面组中的视频解码数据,并对所述第一画面组中的视频解码数据之中的从所述起点时间至所述第一画面组的终止时间的视频解码数据执行编码;并且,对所述第二画面组中的视频编码数据之中的从所述第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
作为示例,视频裁剪单元103可被配置为基于所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳,对所述第一视频编码数据和所述第二视频编码数据进行合并,得到裁剪后的视频编码数据;其中,所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳为:其原始时间戳减去所述起点时间。
作为示例,音频裁剪单元104可被配置为将所述视频文件中从所述起点时间至所述终点时间的音频编码数据的时间戳修改为:其原始时间戳减去所述起点时间,并将修改了时间戳的音频编码数据作为裁剪后的音频编码数据。
作为示例,视频裁剪单元103、音频裁剪单元104、复用单元105可并行地执行相应操作。
关于上述实施例中的裁剪视频的装置10,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
此外,应该理解,根据本公开示例性实施例的裁剪视频的装置10中的各个单元可被实现硬件组件和/或软件组件。本领域技术人员根据限定的各个单元所执行的处理,可以例如使用现场可编程门阵列(FPGA)或专用集成电路(ASIC)来实现各个单元。
图5示出根据本公开示例性实施例的电子设备的结构框图。参照图5,该电子设备20包括:至少一个存储器201和至少一个处理器202,所述至少一个存储器201中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器202执行时,执行如上述示例性实施例所述的裁剪视频的方法。
作为示例,电子设备20可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备20并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备20还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在电子设备20中,处理器202可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器202还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器202可运行存储在存储器201中的指令或代码,其中,存储器201还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器201可与处理器202集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器201可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器301和处理器202可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器202能够读取存储在存储器中的文件。
此外,电子设备20还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备20的所有组件可经由总线和/或网络而彼此连接。
根据本公开的示例性实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行如上述示例性实施例所述的裁剪视频的方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的示例性实施例,还可提供一种计算机程序产品,该计算机程序产品中的指令可由至少一个处理器执行以完成如上述示例性实施例所述的裁剪视频的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种裁剪视频的方法,其特征在于,包括:
获取视频文件的裁剪范围的起点时间和终点时间;
确定所述视频文件中的第一画面组和第二画面组;其中,所述第一画面组为所述起点时间所在的画面组,所述第二画面组为所述终点时间所在的画面组;
对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,得到第一视频编码数据,并基于所述第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据;其中,所述第二视频编码数据为所述视频文件中处于第一画面组与第二画面组之间的画面组的视频编码数据;
基于所述视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据;
对所述裁剪后的视频编码数据和所述裁剪后的音频编码数据进行视音频复用,得到裁剪后的视频文件。
2.根据权利要求1所述的方法,其特征在于,当所述起点时间为所述第一画面组的起始时间,且所述终点时间非所述第二画面组的终止时间时,所述对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,包括:
对所述第二画面组中的视频编码数据之中的从所述第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
3.根据权利要求1所述的方法,其特征在于,当所述起点时间非所述第一画面组的起始时间,且所述终点时间为所述第二画面组的终止时间时,所述对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,包括:
对所述第一画面组中的视频编码数据执行解码,得到所述第一画面组中的视频解码数据;
对所述第一画面组中的视频解码数据之中的从所述起点时间至所述第一画面组的终止时间的视频解码数据执行编码。
4.根据权利要求1所述的方法,其特征在于,当所述起点时间非所述第一画面组的起始时间,且所述终点时间非所述第二画面组的终止时间时,所述对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,包括:
对所述第一画面组中的视频编码数据执行解码,得到所述第一画面组中的视频解码数据,并对所述第一画面组中的视频解码数据之中的从所述起点时间至所述第一画面组的终止时间的视频解码数据执行编码;
对所述第二画面组中的视频编码数据之中的从所述第二画面组的起始时间到所述终点时间的视频编码数据执行解码和编码。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据,包括:
基于所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳,对所述第一视频编码数据和所述第二视频编码数据进行合并,得到裁剪后的视频编码数据;
其中,所述第一视频编码数据和所述第二视频编码数据各自修改后的时间戳为:其原始时间戳减去所述起点时间。
6.根据权利要求1所述的方法,其特征在于,所述基于所述视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据,包括:
将所述视频文件中从所述起点时间至所述终点时间的音频编码数据的时间戳修改为:其原始时间戳减去所述起点时间,并将修改了时间戳的音频编码数据作为裁剪后的音频编码数据。
7.一种裁剪视频的装置,其特征在于,包括:
裁剪时间获取单元,被配置为获取视频文件的裁剪范围的起点时间和终点时间;
画面组确定单元,被配置为确定所述视频文件中的第一画面组和第二画面组;其中,所述第一画面组为所述起点时间所在的画面组,所述第二画面组为所述终点时间所在的画面组;
视频裁剪单元,被配置为对所述第一画面组和所述第二画面组的视频编码数据选择性地解码和编码,得到第一视频编码数据,并基于所述第一视频编码数据和第二视频编码数据,得到裁剪后的视频编码数据;其中,所述第二视频编码数据为所述视频文件中处于第一画面组与第二画面组之间的画面组的视频编码数据;
音频裁剪单元,被配置为基于所述视频文件中从所述起点时间至所述终点时间的音频编码数据,得到裁剪后的音频编码数据;
复用单元,被配置为对所述裁剪后的视频编码数据和所述裁剪后的音频编码数据进行视音频复用,得到裁剪后的视频文件。
8.一种电子设备,其特征在于,包括:
至少一个处理器;
至少一个存储计算机可执行指令的存储器,
其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至6中任一项所述的裁剪视频的方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至6中任一项所述的裁剪视频的方法。
10.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被至少一个处理器执行时实现如权利要求1至6中任一项所述的裁剪视频的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477214.4A CN114143601A (zh) | 2021-12-06 | 2021-12-06 | 裁剪视频的方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477214.4A CN114143601A (zh) | 2021-12-06 | 2021-12-06 | 裁剪视频的方法、装置、电子设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114143601A true CN114143601A (zh) | 2022-03-04 |
Family
ID=80384315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111477214.4A Pending CN114143601A (zh) | 2021-12-06 | 2021-12-06 | 裁剪视频的方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114143601A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110007797A1 (en) * | 2008-03-20 | 2011-01-13 | Randall-Reilly Publishing Company, Llc | Digital Audio and Video Clip Encoding |
CN102262888A (zh) * | 2010-05-31 | 2011-11-30 | 苏州闻道网络科技有限公司 | 一种视频文件的裁剪方法 |
CN102769715A (zh) * | 2012-03-31 | 2012-11-07 | 新奥特(北京)视频技术有限公司 | 一种码流剪辑的方法及系统 |
CN106803992A (zh) * | 2017-02-14 | 2017-06-06 | 北京时间股份有限公司 | 视频剪辑方法及装置 |
CN112653904A (zh) * | 2020-12-16 | 2021-04-13 | 杭州当虹科技股份有限公司 | 一种基于pts与dts修改的快速视频裁剪方法 |
-
2021
- 2021-12-06 CN CN202111477214.4A patent/CN114143601A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110007797A1 (en) * | 2008-03-20 | 2011-01-13 | Randall-Reilly Publishing Company, Llc | Digital Audio and Video Clip Encoding |
CN102262888A (zh) * | 2010-05-31 | 2011-11-30 | 苏州闻道网络科技有限公司 | 一种视频文件的裁剪方法 |
CN102769715A (zh) * | 2012-03-31 | 2012-11-07 | 新奥特(北京)视频技术有限公司 | 一种码流剪辑的方法及系统 |
CN106803992A (zh) * | 2017-02-14 | 2017-06-06 | 北京时间股份有限公司 | 视频剪辑方法及装置 |
CN112653904A (zh) * | 2020-12-16 | 2021-04-13 | 杭州当虹科技股份有限公司 | 一种基于pts与dts修改的快速视频裁剪方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017092340A1 (zh) | 一种视频压缩、播放方法以及装置 | |
RU2370906C2 (ru) | Способ и устройство для редактирования видеофрагментов в сжатой области | |
US8488943B1 (en) | Trimming media content without transcoding | |
CN111436004B (zh) | 视频播放方法、装置和设备、计算机可读存储介质 | |
CN109168083B (zh) | 一种流媒体实时播放方法及装置 | |
MX2013007730A (es) | Aparato de codificacion de video, aparato de decodificacion de video, metodo de codificacion de video, y metodo de decodificacion de video. | |
US20160094847A1 (en) | Coupling sample metadata with media samples | |
US20100098161A1 (en) | Video encoding apparatus and video encoding method | |
CN112653904B (zh) | 一种基于pts与dts修改的快速视频裁剪方法 | |
US20180098119A1 (en) | Audience measurement and feedback system | |
US10992946B2 (en) | Coding of video and audio with initialization fragments | |
JP2007048378A (ja) | 記録装置、記録方法、記録方法のプログラム及び記録方法のプログラムを記録した記録媒体 | |
JP2016189613A (ja) | 動画データ編集装置、動画データ編集方法、再生装置、及びプログラム | |
CN114143601A (zh) | 裁剪视频的方法、装置、电子设备、存储介质及程序产品 | |
CN109302574B (zh) | 一种处理视频流的方法和装置 | |
CN111866542B (zh) | 音频信号处理方法、多媒体信息处理方法、装置及电子设备 | |
US9560365B2 (en) | Image coding device, image decoding device, image coding method, and image decoding method | |
KR101361317B1 (ko) | 동영상 구간 저장 시스템 및 그 방법 | |
CN111225210B (zh) | 视频编码方法、视频编码装置及终端设备 | |
CN113556495B (zh) | 视频录制方法、视频处理方法及相应设备 | |
JP5775006B2 (ja) | 情報処理装置、情報処理方法及び半導体装置 | |
RU2682274C1 (ru) | Способ автоматического разделения видео на монтажные кадры | |
JP6789553B2 (ja) | 処理装置及び処理プログラム | |
CN114845076A (zh) | 一种录像数据处理方法、系统、设备及介质 | |
CN116033170A (zh) | 视频解码方法、视频编解码系统以及视频解码装置 |
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 |