CN116939291A - 一种视频快速拆条方法及相关装置 - Google Patents
一种视频快速拆条方法及相关装置 Download PDFInfo
- Publication number
- CN116939291A CN116939291A CN202311180825.1A CN202311180825A CN116939291A CN 116939291 A CN116939291 A CN 116939291A CN 202311180825 A CN202311180825 A CN 202311180825A CN 116939291 A CN116939291 A CN 116939291A
- Authority
- CN
- China
- Prior art keywords
- video
- key frame
- splitting
- stripped
- stripping
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004458 analytical method Methods 0.000 claims abstract description 54
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 28
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 28
- 238000001514 detection method Methods 0.000 claims description 64
- 230000015654 memory Effects 0.000 claims description 29
- 230000000750 progressive effect Effects 0.000 claims description 20
- 238000000605 extraction Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000003672 processing method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
Landscapes
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开了一种视频快速拆条方法及相关装置,涉及视频处理技术领域,所述方法包括:对待拆条视频数据进行元数据分析处理,获得所述待拆条视频数据中的视频场序;对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧;基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间;基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间;基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出。在本发明实施例中,解决了视频拆条时时间不精确和拆条效率较低的问题。
Description
技术领域
本发明涉及视频处理技术领域,尤其涉及一种视频快速拆条方法及相关装置。
背景技术
随着广电媒体整体发展战略的推进,多种影视形态与方式不断向前发展,多媒体内容全面数字化,网络化、信息化,面对海量的多媒体资源无法深度开发和利用以及我国对电视节目的监管要求不断提升,拆条技术应运而生。而互联网不断发展,新媒体视听节目碎片化,iptv、ott、手机电视和新媒体短视频平台需要深度挖掘有价值的信息,不断将海量的多媒体资源进行拆分,拆条技术使一段完整视频素材拆分成为多段视频,拆条技术应用愈发广泛。
现有技术利用视频GOP关键帧技术进行视频快速拆条,缺点在于:经常会有比较明显的视频切割误差。因为视频GOP长度因素存在,经常会出现起始点视频帧并非关键帧。而FFmpeg切割程序代码需要找到切割起始点的视频关键帧,才能正常完成视频帧层面的切割动作。所以FFmpeg程序会计算查找当前视频帧的GOP关键帧后,再以此GOP关键帧为起始点来作为切割起始点。此种方式下会导致真实切割点与原始需求切割点是不一致的情况。导致切割出来的视频起止点并不精确。另外一种方案是将视频进行转码后进行拆条,时间精度准确,因为对视频进行全量编码计算量很大,导致效率很低。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了了一种视频快速拆条方法及相关装置,解决了视频拆条时时间不精确和拆条效率较低的问题。
为了解决上述技术问题,本发明实施例提供了一种视频快速拆条方法,所述方法包括:
对待拆条视频数据进行元数据分析处理,获得所述待拆条视频数据中的视频场序,所述视频场序包括逐行扫描或隔行扫描;
对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧;
基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,所述视频拆条区间包括头区间、关键帧区间和尾区间;
基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间;
基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出。
可选的,所述对待拆条视频数据进行元数据分析处理,包括:
基于用户对视频截取时间获得截取时间段内的待拆条视频数据;
基于ffprobe软件按照预设分析命令对所述待拆条视频数据进行元数据分析处理;所述预设分析命令由视频格式分析、音视频流分析、输出JSON格式及视频地址组成。
可选的,所述对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧,包括:
利用ffprobe软件基于关键帧读取命令对所述待拆条视频数据中的视频关键帧信息进行读取处理,形成视频关键帧时间点列表;
基于所述视频关键帧时间点列表对所述待拆条视频数据从开始时间点和结束时间点分别按照预设探测时间长度向内侧进行关键帧探测处理,获得第一视频关键帧和第二视频关键帧;所述第一视频关键帧为由所述待拆条视频数据从开始时间点进行向内进行关键帧探测处理获得;所述第二视频关键帧为由所述待拆条视频数据从结束时间点进行向内进行关键帧探测处理获得。
可选的,所述按照预设探测时间长度向内侧进行关键帧探测处理,包括:
若在预设探测时间长度未探测到关键帧时,将自动递增预设探测时间长度继续向内侧进行关键帧探测处理,直至探测到所述视频关键帧或完成待拆条视频数据的探测。
可选的,所述基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,包括:
判断所述视频关键帧是否为完整关键帧,所述完整关键帧的定义为存在第一视频关键帧和第二视频关键帧,且第一视频关键帧和第二视频关键帧为不同的视频关键帧;
若为非完整关键帧,则无需对所述待拆条视频数据进行拆条处理,并对所述待拆条视频数据利用给定编码标准进行完整编码并输出;
若为完整关键帧时,则将所述待拆条视频数据由开始时间点到第一视频关键帧部分定义为头区间,将第一视频关键帧到第二视频关键帧部分定义为关键帧区间,将第二视频关键帧到结束时间点部分定义为尾区间。
可选的,所述基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间,包括:
识别所述视频场序为所述逐行扫描或所述隔行扫描,若识别为隔行扫描时,在所述转码命令中添加第一预设参数,若识别为逐行扫描时,则无需对所述转码命令进行参数添加;
基于所述转码命令在ffmpeg软件中对所述视频拆条区间进行编码处理,形成编码视频拆条区间;
其中,在ffmpeg软件中对所述头区间和所述尾区间进行编码处理;在ffmpeg软件中使用第二预设参数对所述关键字区间进行封装,形成封装视频数据。
可选的,所述基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出,包括:
在ffmpeg软件中调用视频合成命令将所述编码视频拆条区间进行合并处理,形成拆条视频并输出;
所述视频合成命令的前部分地址为输入视频地址,所述视频合成命令结尾部分路径为输出目录。
另外,本发明实施例还提供了一种视频快速拆条装置,所述装置包括:
分析模块:用于对待拆条视频数据进行元数据分析处理,获得所述待拆条视频数据中的视频场序,所述视频场序包括逐行扫描或隔行扫描;
关键字提取模块:用于对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧;
拆条模块:用于基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,所述视频拆条区间包括头区间、关键帧区间和尾区间;
编码模块:用于基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间;
合并模块:用于基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出。
另外,本发明实施例还提供了一种智能设备,包括处理器和存储器,所述处理器运行存储于所述存储器中的计算机程序或代码,实现如上述中任一项所述的视频快速拆条方法。
另外,本发明实施例还提供了一种计算机可读存储介质,用于存储计算机程序或代码,当所述计算机程序或代码被处理器执行时,实现如上述中任一项所述的视频快速拆条方法。
在本发明具体实施过程中,通过对拆条区间内的视频数据分析出区间内最大的完整关键帧区间(最大GOP区间)视频封装的时间起止点,对最大的完整关键帧区间内的视频数据进行不编码裁剪,再对头区间和尾区间进行编码裁剪,再对裁剪完的视频进行合并输出到目标文件,可以有效的解决了视频拆条时时间不精确和拆条效率较低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中的视频快速拆条方法的流程示意图;
图2是本发明实施例中的视频快速拆条装置的结构组成示意图;
图3是本发明实施例中的智能设备的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一,请参阅图1,图1是本发明实施例中的视频快速拆条方法的流程示意图。
如图1所示,一种视频快速拆条方法,所述方法包括:
S11:对待拆条视频数据进行元数据分析处理,获得所述待拆条视频数据中的视频场序,所述视频场序包括逐行扫描或隔行扫描;
在本发明具体实施过程中,所述对待拆条视频数据进行元数据分析处理,包括:基于用户对视频截取时间获得截取时间段内的待拆条视频数据;基于ffprobe软件按照预设分析命令对所述待拆条视频数据进行元数据分析处理;所述预设分析命令由视频格式分析、音视频流分析、输出JSON格式及视频地址组成。
具体的,根据用户对视频截取时间来获得截取时间对应的时间段内的视频数据作为待拆条视频数据;通过ffprobe软件调用预设分析指令来对待拆条视频数据进行元数据分析处理,从而得到待拆条视频数据中的视频场序,视频场序包括逐行扫描或隔行扫描;其中隔行扫描也分为顶场优先和底场优先等;所述预设分析命令由视频格式分析、音视频流分析、输出JSON格式及视频地址组成;由此可以及时获得待拆条视频数据中的视频场序,可以有效的解决后续在视频合并时,因为场序的不一致,导致视频解析失败,画面花屏等技术问题;其中,预设分析命令的代码表达方式为ffprobe -print_format json -show_format-show_streams视频地址;即-print_format json 表示输出JSON格式数据;-show_format表示分析视频格式;-show_streams表示分析视频的音频流、视频流信息。
S12:对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧;
在本发明具体实施过程中,所述对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧,包括:利用ffprobe软件基于关键帧读取命令对所述待拆条视频数据中的视频关键帧信息进行读取处理,形成视频关键帧时间点列表;基于所述视频关键帧时间点列表对所述待拆条视频数据从开始时间点和结束时间点分别按照预设探测时间长度向内侧进行关键帧探测处理,获得第一视频关键帧和第二视频关键帧;所述第一视频关键帧为由所述待拆条视频数据从开始时间点进行向内进行关键帧探测处理获得;所述第二视频关键帧为由所述待拆条视频数据从结束时间点进行向内进行关键帧探测处理获得。
进一步的,所述按照预设探测时间长度向内侧进行关键帧探测处理,包括:若在预设探测时间长度未探测到关键帧时,将自动递增预设探测时间长度继续向内侧进行关键帧探测处理,直至探测到所述视频关键帧或完成待拆条视频数据的探测。
具体的,通过ffprobe软件利用关键帧读取命令对待拆条视频数据中的视频关键帧信息进行读取处理,形成视频关键帧时间点列表;然后再根据视频关键帧时间点列表对待拆条视频数据从开始时间点和结束时间点分别按照预设探测时间长度向内侧进行关键帧探测处理,从而获得第一视频关键帧和第二视频关键帧;其中,第一视频关键帧为由待拆条视频数据从开始时间点进行向内进行关键帧探测处理获得;第二视频关键帧为由待拆条视频数据从结束时间点进行向内进行关键帧探测处理获得。
其中,关键帧读取命令为ffprobe -v error -select_streams v:0 -show_entries frame=pts_time -of csv=print_section=0 -skip_frame nokey -read_intervals "{0}%+{1}" "{2}";在关键帧读取命令中,-v error:将日志输出级别设置为 "error",只显示错误消息,屏蔽其他输出;-select_streams v:0:选择第一个视频流进行分析;-show_entries frame=pts_time:显示每个帧的时间戳(presentation timestamp);-of csv=print_section=0:以 CSV 格式输出结果,去掉每个节的标题;-skip_framenokey:在输出中不跳过关键帧;-read_intervals "{0}%+{1}" "{2}":指定要读取的时间段。这里使用了占位符 {0}, {1} 和 {2},它们将在命令中的实际值被替换掉;这个命令的作用为分析视频文件中指定时间段的每个帧的时间戳,需要将 {0}, {1} 和 {2} 替换为实际的值,以指定要读取的时间段;按照预设探测时间长度向内侧进行关键帧探测处理具体为若在预设探测时间长度未探测到关键帧时,将自动递增预设探测时间长度继续向内侧进行关键帧探测处理,直至探测到视频关键帧或完成待拆条视频数据的探测。
即,对待拆条视频数据从开始时间点和结束时间点分别向内探测到视频关键帧;为了提升速度,采用时间递增策略,首次探测长度为10秒,未找到会递增探测区间10秒,最大区间为拆条区间的时长,当探测到第一个视频关键帧时间点之后程序结束执行;采用该步骤对待拆条视频进行视频关键帧提取处理,可以快速提取到从待拆条视频数据的开始时间点和结束时间点向内探测的第一个视频关键帧;从而组成一个GOP,GOP(图像集合)是一组以MPEG编码的视频内部的连续图像,每一个以MPEG标准编码的视频都由连续的若干个图像集合组成;图像集合的长度即一个I帧和下一个I帧之间的帧数。
S13:基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,所述视频拆条区间包括头区间、关键帧区间和尾区间;
在本发明具体实施过程中,所述基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,包括:判断所述视频关键帧是否为完整关键帧,所述完整关键帧的定义为存在第一视频关键帧和第二视频关键帧,且第一视频关键帧和第二视频关键帧为不同的视频关键帧;若为非完整关键帧,则无需对所述待拆条视频数据进行拆条处理,并对所述待拆条视频数据利用给定编码标准进行完整编码并输出;若为完整关键帧时,则将所述待拆条视频数据由开始时间点到第一视频关键帧部分定义为头区间,将第一视频关键帧到第二视频关键帧部分定义为关键帧区间,将第二视频关键帧到结束时间点部分定义为尾区间。
判断视频关键帧是否为完整关键帧,其中可以定义完整关键帧为由第一视频关键帧和第二视频关键帧组成的GOP;即,存在第一视频关键帧和第二视频关键帧,且第一视频关键帧和第二视频关键帧为不同的视频关键帧;若为非完整关键帧,则无需对待拆条视频数据进行拆条处理,而是对待拆条视频数据利用给定编码标准进行完整编码并输出,给定的编码标准可以为MP4格式标准,也可以为MPEG编码标准;若为完整关键帧时,则将第一视频关键帧到第二视频关键帧部分定义为关键帧区间,将第二视频关键帧到结束时间点部分定义为尾区间;这样即可快速的完成对待拆条视频数据拆分为三个部分,方便后续进行拆条处理,是得后续拆条速度更快,效率更高。
S14:基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间;
在本发明具体实施过程中,所述基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间,包括:
识别所述视频场序为所述逐行扫描或所述隔行扫描,若识别为隔行扫描时,在所述转码命令中添加第一预设参数,若识别为逐行扫描时,则无需对所述转码命令进行参数添加;基于所述转码命令在ffmpeg软件中对所述视频拆条区间进行编码处理,形成编码视频拆条区间;其中,在ffmpeg软件中对所述头区间和所述尾区间进行编码处理;在ffmpeg软件中使用第二预设参数对所述关键字区间进行封装,形成封装视频数据。
具体的,识别该视频场序为逐行扫描或隔行扫描,若识别为隔行扫描时,在转码命令中添加第一预设参数,若识别为逐行扫描时,则无需对所述转码命令进行参数添加;主要是解决因为场序不同,后续合并之后可能导致视频解析失败和画面花屏等技术问题;然后根据转码命令在ffmpeg软件中对视频拆条区间进行编码处理,形成编码视频拆条区间;在ffmpeg软件中对头区间和尾区间进行编码处理;在ffmpeg软件中使用第二预设参数对所述关键字区间进行封装,形成封装视频数据;即,只需要对头区间和尾区间进行编码拆条,而对于关键字区间进行的是不编码拆条;其中,在ffmpeg软件对关键字区间进行的是不编码拆条执行的命令:ffmpeg -ss {时间起点} -to {时间终点} -i {输入地址} -c copy {输出地址} -y;在ffmpeg软件对头区间和尾区间进行编码拆条执行的命令:ffmpeg -ss {时间起点} -to {时间终点} -i {输入地址} -c:v libx264 -c:a copy {输出地址} -y;因此拆条的整体时间较短,执行耗时相对于网站编码拆条的方式有着极大的提升。
其中,第一预设参数为-flags +ilme+ildct -alternate_scan 1参数,其中-flags +ilme+ildct:表示选项启用了帧内预测(intra frame prediction)和整数离散余弦变换(integer discrete cosine transform),为视频编码中用于压缩视频数据的技术;-alternate_scan 1:表示选项指定了扫描方式的选择,其中 1 表示交错扫描(alternate scan);第二预设参数为-c copy参数,其中,-c copy表示选项告诉 FFmpeg 复制输入文件的编码方式,即直接将视频流从输入复制到输出文件,不进行重新编码;这对于只想复制视频流而不进行任何编码处理的情况非常有用;通过使用 -c copy参数,可以保留原始视频流的编码方式,从而避免重新编码所带来的质量损失或处理时间;这对于仅需要复制视频流而不进行其他处理的情况非常实用。
S15:基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出。
在本发明具体实施过程中,所述基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出,包括:在ffmpeg软件中调用视频合成命令将所述编码视频拆条区间进行合并处理,形成拆条视频并输出;所述视频合成命令的前部分地址为输入视频地址,所述视频合成命令结尾部分路径为输出目录。
具体的,在ffmpeg软件中调用视频合成命令将编码视频拆条区间进行合并处理,形成拆条视频并输出;其中,视频合成命令的前部分地址为输入视频地址,所述视频合成命令结尾部分路径为输出目录;即通过在ffmpeg软件中调用concat命令进行合并,命令如下:ffmpeg -i concat:"D:/out/tt_1.ts|D:/out/tt_2.ts|D:/out/tt_3.ts" -c copy -movflags +faststart D:/out/ntt.mp4 -y;通过本申请中的拆条方法保障了视频拆条的准确性,相比原本完整转码的拆条方案,极大的提升了拆条速度,开发难度小,对资源消耗低,具有很高的推广性。
在本发明具体实施过程中,通过对拆条区间内的视频数据分析出区间内最大的完整关键帧区间(最大GOP区间)视频封装的时间起止点,对最大的完整关键帧区间内的视频数据进行不编码裁剪,再对头区间和尾区间进行编码裁剪,再对裁剪完的视频进行合并输出到目标文件,可以有效的解决了视频拆条时时间不精确和拆条效率较低的问题。
实施例二,请参阅图2,图2是本发明实施例中的视频快速拆条装置的结构组成示意图。
如图2所示,一种视频快速拆条装置,所述装置包括:
分析模块21:用于对待拆条视频数据进行元数据分析处理,获得所述待拆条视频数据中的视频场序,所述视频场序包括逐行扫描或隔行扫描;
在本发明具体实施过程中,所述对待拆条视频数据进行元数据分析处理,包括:基于用户对视频截取时间获得截取时间段内的待拆条视频数据;基于ffprobe软件按照预设分析命令对所述待拆条视频数据进行元数据分析处理;所述预设分析命令由视频格式分析、音视频流分析、输出JSON格式及视频地址组成。
具体的,根据用户对视频截取时间来获得截取时间对应的时间段内的视频数据作为待拆条视频数据;通过ffprobe软件调用预设分析指令来对待拆条视频数据进行元数据分析处理,从而得到待拆条视频数据中的视频场序,视频场序包括逐行扫描或隔行扫描;其中隔行扫描也分为顶场优先和底场优先等;所述预设分析命令由视频格式分析、音视频流分析、输出JSON格式及视频地址组成;由此可以及时获得待拆条视频数据中的视频场序,可以有效的解决后续在视频合并时,因为场序的不一致,导致视频解析失败,画面花屏等技术问题;其中,预设分析命令的代码表达方式为ffprobe -print_format json -show_format-show_streams视频地址;即-print_format json 表示输出JSON格式数据;-show_format表示分析视频格式;-show_streams表示分析视频的音频流、视频流信息。
关键字提取模块22:用于对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧;
在本发明具体实施过程中,所述对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧,包括:利用ffprobe软件基于关键帧读取命令对所述待拆条视频数据中的视频关键帧信息进行读取处理,形成视频关键帧时间点列表;基于所述视频关键帧时间点列表对所述待拆条视频数据从开始时间点和结束时间点分别按照预设探测时间长度向内侧进行关键帧探测处理,获得第一视频关键帧和第二视频关键帧;所述第一视频关键帧为由所述待拆条视频数据从开始时间点进行向内进行关键帧探测处理获得;所述第二视频关键帧为由所述待拆条视频数据从结束时间点进行向内进行关键帧探测处理获得。
进一步的,所述按照预设探测时间长度向内侧进行关键帧探测处理,包括:若在预设探测时间长度未探测到关键帧时,将自动递增预设探测时间长度继续向内侧进行关键帧探测处理,直至探测到所述视频关键帧或完成待拆条视频数据的探测。
具体的,通过ffprobe软件利用关键帧读取命令对待拆条视频数据中的视频关键帧信息进行读取处理,形成视频关键帧时间点列表;然后再根据视频关键帧时间点列表对待拆条视频数据从开始时间点和结束时间点分别按照预设探测时间长度向内侧进行关键帧探测处理,从而获得第一视频关键帧和第二视频关键帧;其中,第一视频关键帧为由待拆条视频数据从开始时间点进行向内进行关键帧探测处理获得;第二视频关键帧为由待拆条视频数据从结束时间点进行向内进行关键帧探测处理获得。
其中,关键帧读取命令为ffprobe -v error -select_streams v:0 -show_entries frame=pts_time -of csv=print_section=0 -skip_frame nokey -read_intervals "{0}%+{1}" "{2}";在关键帧读取命令中,-v error:将日志输出级别设置为 "error",只显示错误消息,屏蔽其他输出;-select_streams v:0:选择第一个视频流进行分析;-show_entries frame=pts_time:显示每个帧的时间戳(presentation timestamp);-of csv=print_section=0:以 CSV 格式输出结果,去掉每个节的标题;-skip_framenokey:在输出中不跳过关键帧;-read_intervals "{0}%+{1}" "{2}":指定要读取的时间段。这里使用了占位符 {0}, {1} 和 {2},它们将在命令中的实际值被替换掉;这个命令的作用为分析视频文件中指定时间段的每个帧的时间戳,需要将 {0}, {1} 和 {2} 替换为实际的值,以指定要读取的时间段;按照预设探测时间长度向内侧进行关键帧探测处理具体为若在预设探测时间长度未探测到关键帧时,将自动递增预设探测时间长度继续向内侧进行关键帧探测处理,直至探测到视频关键帧或完成待拆条视频数据的探测。
即,对待拆条视频数据从开始时间点和结束时间点分别向内探测到视频关键帧;为了提升速度,采用时间递增策略,首次探测长度为10秒,未找到会递增探测区间10秒,最大区间为拆条区间的时长,当探测到第一个视频关键帧时间点之后程序结束执行;采用该步骤对待拆条视频进行视频关键帧提取处理,可以快速提取到从待拆条视频数据的开始时间点和结束时间点向内探测的第一个视频关键帧;从而组成一个GOP,GOP(图像集合)是一组以MPEG编码的视频内部的连续图像,每一个以MPEG标准编码的视频都由连续的若干个图像集合组成;图像集合的长度即一个I帧和下一个I帧之间的帧数。
拆条模块23:用于基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,所述视频拆条区间包括头区间、关键帧区间和尾区间;
在本发明具体实施过程中,所述基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,包括:判断所述视频关键帧是否为完整关键帧,所述完整关键帧的定义为第一视频关键帧和第二视频关键帧,且第一视频关键帧和第二视频关键帧为不同的视频关键帧;若为非完整关键帧,则无需对所述待拆条视频数据进行拆条处理,并对所述待拆条视频数据利用给定编码标准进行完整编码并输出;若为完整关键帧时,则将所述待拆条视频数据由开始时间点到第一视频关键帧部分定义为头区间,将第一视频关键帧到第二视频关键帧部分定义为关键帧区间,将第二视频关键帧到结束时间点部分定义为尾区间。
判断视频关键帧是否为完整关键帧,其中可以定义完整关键帧为由第一视频关键帧和第二视频关键帧组成的GOP;即,存在第一视频关键帧和第二视频关键帧,且第一视频关键帧和第二视频关键帧为不同的视频关键帧;若为非完整关键帧,则无需对待拆条视频数据进行拆条处理,而是对待拆条视频数据利用给定编码标准进行完整编码并输出,给定的编码标准可以为MP4格式标准,也可以为MPEG编码标准;若为完整关键帧时,则将第一视频关键帧到第二视频关键帧部分定义为关键帧区间,将第二视频关键帧到结束时间点部分定义为尾区间;这样即可快速的完成对待拆条视频数据拆分为三个部分,方便后续进行拆条处理,是得后续拆条速度更快,效率更高。
编码模块24:用于基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间;
在本发明具体实施过程中,所述基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间,包括:
识别所述视频场序为所述逐行扫描或所述隔行扫描,若识别为隔行扫描时,在所述转码命令中添加第一预设参数,若识别为逐行扫描时,则无需对所述转码命令进行参数添加;基于所述转码命令在ffmpeg软件中对所述视频拆条区间进行编码处理,形成编码视频拆条区间;其中,在ffmpeg软件中对所述头区间和所述尾区间进行编码处理;在ffmpeg软件中使用第二预设参数对所述关键字区间进行封装,形成封装视频数据。
具体的,识别该视频场序为逐行扫描或隔行扫描,若识别为隔行扫描时,在转码命令中添加第一预设参数,若识别为逐行扫描时,则无需对所述转码命令进行参数添加;主要是解决因为场序不同,后续合并之后可能导致视频解析失败和画面花屏等技术问题;然后根据转码命令在ffmpeg软件中对视频拆条区间进行编码处理,形成编码视频拆条区间;在ffmpeg软件中对头区间和尾区间进行编码处理;在ffmpeg软件中使用第二预设参数对所述关键字区间进行封装,形成封装视频数据;即,只需要对头区间和尾区间进行编码拆条,而对于关键字区间进行的是不编码拆条;其中,在ffmpeg软件对关键字区间进行的是不编码拆条执行的命令:ffmpeg -ss {时间起点} -to {时间终点} -i {输入地址} -c copy {输出地址} -y;在ffmpeg软件对头区间和尾区间进行编码拆条执行的命令:ffmpeg -ss {时间起点} -to {时间终点} -i {输入地址} -c:v libx264 -c:a copy {输出地址} -y;因此拆条的整体时间较短,执行耗时相对于网站编码拆条的方式有着极大的提升。
其中,第一预设参数为-flags +ilme+ildct -alternate_scan 1参数,其中-flags +ilme+ildct:表示选项启用了帧内预测(intra frame prediction)和整数离散余弦变换(integer discrete cosine transform),为视频编码中用于压缩视频数据的技术;-alternate_scan 1:表示选项指定了扫描方式的选择,其中 1 表示交错扫描(alternate scan);第二预设参数表示-c copy参数,其中,-c copy表示选项告诉 FFmpeg复制输入文件的编码方式,即直接将视频流从输入复制到输出文件,不进行重新编码;这对于只想复制视频流而不进行任何编码处理的情况非常有用;通过使用 -c copy参数,可以保留原始视频流的编码方式,从而避免重新编码所带来的质量损失或处理时间;这对于仅需要复制视频流而不进行其他处理的情况非常实用。
合并模块25:用于基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出。
在本发明具体实施过程中,所述基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出,包括:在ffmpeg软件中调用视频合成命令将所述编码视频拆条区间进行合并处理,形成拆条视频并输出;所述视频合成命令的前部分地址为输入视频地址,所述视频合成命令结尾部分路径为输出目录。
具体的,在ffmpeg软件中调用视频合成命令将编码视频拆条区间进行合并处理,形成拆条视频并输出;其中,视频合成命令的前部分地址为输入视频地址,所述视频合成命令结尾部分路径为输出目录;即通过在ffmpeg软件中调用concat命令进行合并,命令如下:ffmpeg -i concat:"D:/out/tt_1.ts|D:/out/tt_2.ts|D:/out/tt_3.ts" -c copy -movflags +faststart D:/out/ntt.mp4 -y;通过本申请中的拆条方法保障了视频拆条的准确性,相比原本完整转码的拆条方案,极大的提升了拆条速度,开发难度小,对资源消耗低,具有很高的推广性。
在本发明具体实施过程中,通过对拆条区间内的视频数据分析出区间内最大的完整关键帧区间(最大GOP区间)视频封装的时间起止点,对最大的完整关键帧区间内的视频数据进行不编码裁剪,再对头区间和尾区间进行编码裁剪,再对裁剪完的视频进行合并输出到目标文件,可以有效的解决了视频拆条时时间不精确和拆条效率较低的问题。
本发明实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例中任意一个实施例的视频快速拆条方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSable ProgrammableRead-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
本发明实施例还提供了一种计算机应用程序,其运行在计算机上,该计算机应用程序用于执行上述中任意一个实施例的视频快速拆条方法。
此外,图3是本发明实施例中的智能设备的结构组成示意图。
本发明实施例还提供了一种智能设备,如图3所示。所述智能设备包括处理器302、存储器303、输入单元304以及显示单元305等器件。本领域技术人员可以理解,图3示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器303可用于存储应用程序301以及各功能模块,处理器302运行存储在存储器303的应用程序301,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程 ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
输入单元304用于接收信号的输入,以及接收用户输入的关键字。输入单元304可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元305可用于显示用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元305可采用液晶显示器、有机发光二极管等形式。处理器302是终端设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器303内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
作为一个实施例,所述智能设备包括:一个或多个处理器302,存储器303,一个或多个应用程序301,其中所述一个或多个应用程序301被存储在存储器303中并被配置为由所述一个或多个处理器302执行,所述一个或多个应用程序301配置用于执行上述实施例中的任意一实施例中对的视频快速拆条方法。
在本发明具体实施过程中,通过对拆条区间内的视频数据分析出区间内最大的完整关键帧区间(最大GOP区间)视频封装的时间起止点,对最大的完整关键帧区间内的视频数据进行不编码裁剪,再对头区间和尾区间进行编码裁剪,再对裁剪完的视频进行合并输出到目标文件,可以有效的解决了视频拆条时时间不精确和拆条效率较低的问题。
另外,以上对本发明实施例所提供的一种视频快速拆条方法及相关装置进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种视频快速拆条方法,其特征在于,所述方法包括:
对待拆条视频数据进行元数据分析处理,获得所述待拆条视频数据中的视频场序,所述视频场序包括逐行扫描或隔行扫描;
对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧;
基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,所述视频拆条区间包括头区间、关键帧区间和尾区间;
基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间;
基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出。
2.根据权利要求1所述的视频快速拆条方法,其特征在于,所述对待拆条视频数据进行元数据分析处理,包括:
基于用户对视频截取时间获得截取时间段内的待拆条视频数据;
基于ffprobe软件按照预设分析命令对所述待拆条视频数据进行元数据分析处理;所述预设分析命令由视频格式分析、音视频流分析、输出JSON格式及视频地址组成。
3.根据权利要求1所述的视频快速拆条方法,其特征在于,所述对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧,包括:
利用ffprobe软件基于关键帧读取命令对所述待拆条视频数据中的视频关键帧信息进行读取处理,形成视频关键帧时间点列表;
基于所述视频关键帧时间点列表对所述待拆条视频数据从开始时间点和结束时间点分别按照预设探测时间长度向内侧进行关键帧探测处理,获得第一视频关键帧和第二视频关键帧;所述第一视频关键帧为由所述待拆条视频数据从开始时间点进行向内进行关键帧探测处理获得;所述第二视频关键帧为由所述待拆条视频数据从结束时间点进行向内进行关键帧探测处理获得。
4.根据权利要求3所述的视频快速拆条方法,其特征在于,所述按照预设探测时间长度向内侧进行关键帧探测处理,包括:
若在预设探测时间长度未探测到关键帧时,将自动递增预设探测时间长度继续向内侧进行关键帧探测处理,直至探测到所述视频关键帧或完成待拆条视频数据的探测。
5.根据权利要求1所述的视频快速拆条方法,其特征在于,所述基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,包括:
判断所述视频关键帧是否为完整关键帧,所述完整关键帧的定义为存在第一视频关键帧和第二视频关键帧,且第一视频关键帧和第二视频关键帧为不同的视频关键帧;
若为非完整关键帧,则无需对所述待拆条视频数据进行拆条处理,并对所述待拆条视频数据利用给定编码标准进行完整编码并输出;
若为完整关键帧时,则将所述待拆条视频数据由开始时间点到第一视频关键帧部分定义为头区间,将第一视频关键帧到第二视频关键帧部分定义为关键帧区间,将第二视频关键帧到结束时间点部分定义为尾区间。
6.根据权利要求1所述的视频快速拆条方法,其特征在于,所述基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间,包括:
识别所述视频场序为所述逐行扫描或所述隔行扫描,若识别为隔行扫描时,在所述转码命令中添加第一预设参数,若识别为逐行扫描时,则无需对所述转码命令进行参数添加;
基于所述转码命令在ffmpeg软件中对所述视频拆条区间进行编码处理,形成编码视频拆条区间;
其中,在ffmpeg软件中对所述头区间和所述尾区间进行编码处理;在ffmpeg软件中使用第二预设参数对所述关键字区间进行封装,形成封装视频数据。
7.根据权利要求1所述的视频快速拆条方法,其特征在于,所述基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出,包括:
在ffmpeg软件中调用视频合成命令将所述编码视频拆条区间进行合并处理,形成拆条视频并输出;
所述视频合成命令的前部分地址为输入视频地址,所述视频合成命令结尾部分路径为输出目录。
8.一种视频快速拆条装置,其特征在于,所述装置包括:
分析模块:用于对待拆条视频数据进行元数据分析处理,获得所述待拆条视频数据中的视频场序,所述视频场序包括逐行扫描或隔行扫描;
关键字提取模块:用于对所述待拆条视频数据按照预设规则进行视频关键帧提取处理,获得视频关键帧;
拆条模块:用于基于所提取的视频关键帧对所述待拆条视频数据进行拆条处理,形成视频拆条区间,所述视频拆条区间包括头区间、关键帧区间和尾区间;
编码模块:用于基于所述视频场序调用转码命令对所述视频拆条区间进行编码处理,形成编码视频拆条区间;
合并模块:用于基于视频合成命令将所述编码视频拆条区间合进行合并处理,形成拆条视频并输出。
9.一种智能设备,包括处理器和存储器,其特征在于,所述处理器运行存储于所述存储器中的计算机程序或代码,实现如权利要求1至7中任一项所述的视频快速拆条方法。
10.一种计算机可读存储介质,用于存储计算机程序或代码,其特征在于,当所述计算机程序或代码被处理器执行时,实现如权利要求1至7中任一项所述的视频快速拆条方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311180825.1A CN116939291B (zh) | 2023-09-13 | 2023-09-13 | 一种视频快速拆条方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311180825.1A CN116939291B (zh) | 2023-09-13 | 2023-09-13 | 一种视频快速拆条方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116939291A true CN116939291A (zh) | 2023-10-24 |
CN116939291B CN116939291B (zh) | 2023-11-28 |
Family
ID=88394374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311180825.1A Active CN116939291B (zh) | 2023-09-13 | 2023-09-13 | 一种视频快速拆条方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116939291B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070033742A (ko) * | 2005-09-22 | 2007-03-27 | 삼성전자주식회사 | 스포츠 동영상의 플레이 구간 검출 방법 및 장치 |
CN101616264A (zh) * | 2008-06-27 | 2009-12-30 | 中国科学院自动化研究所 | 新闻视频编目方法及系统 |
CN102724485A (zh) * | 2012-06-26 | 2012-10-10 | 公安部第三研究所 | 采用双核处理器对输入视频进行结构化描述的装置和方法 |
US20140037216A1 (en) * | 2012-08-03 | 2014-02-06 | Mrityunjay Kumar | Identifying scene boundaries using group sparsity analysis |
CN112818906A (zh) * | 2021-02-22 | 2021-05-18 | 浙江传媒学院 | 一种基于多模态信息融合理解的全媒体新闻智能编目方法 |
CN113128261A (zh) * | 2019-12-30 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置、视频处理方法及装置 |
WO2022105656A1 (zh) * | 2020-11-17 | 2022-05-27 | 北京金山云网络技术有限公司 | 一种视频拆条方法、系统、装置、设备及存储介质 |
CN115002529A (zh) * | 2022-05-07 | 2022-09-02 | 咪咕文化科技有限公司 | 视频拆条方法、装置、设备及存储介质 |
CN115497017A (zh) * | 2021-06-18 | 2022-12-20 | 北京市博汇科技股份有限公司 | 一种基于人工智能的广播电视新闻拆条方法及装置 |
-
2023
- 2023-09-13 CN CN202311180825.1A patent/CN116939291B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070033742A (ko) * | 2005-09-22 | 2007-03-27 | 삼성전자주식회사 | 스포츠 동영상의 플레이 구간 검출 방법 및 장치 |
CN101616264A (zh) * | 2008-06-27 | 2009-12-30 | 中国科学院自动化研究所 | 新闻视频编目方法及系统 |
CN102724485A (zh) * | 2012-06-26 | 2012-10-10 | 公安部第三研究所 | 采用双核处理器对输入视频进行结构化描述的装置和方法 |
US20140037216A1 (en) * | 2012-08-03 | 2014-02-06 | Mrityunjay Kumar | Identifying scene boundaries using group sparsity analysis |
CN113128261A (zh) * | 2019-12-30 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置、视频处理方法及装置 |
WO2022105656A1 (zh) * | 2020-11-17 | 2022-05-27 | 北京金山云网络技术有限公司 | 一种视频拆条方法、系统、装置、设备及存储介质 |
CN112818906A (zh) * | 2021-02-22 | 2021-05-18 | 浙江传媒学院 | 一种基于多模态信息融合理解的全媒体新闻智能编目方法 |
CN115497017A (zh) * | 2021-06-18 | 2022-12-20 | 北京市博汇科技股份有限公司 | 一种基于人工智能的广播电视新闻拆条方法及装置 |
CN115002529A (zh) * | 2022-05-07 | 2022-09-02 | 咪咕文化科技有限公司 | 视频拆条方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
ABDUL: "A comparative Study of Video Spliting Techniques", PROGRESS IN SYSTEMS ENGINEERING * |
周海涛;: "新媒体视频智能拆条技术的研究与应用", 中国传媒科技, no. 1 * |
邱宏: "卫星广播电视内容智能监测系统", 广播电视网络 * |
Also Published As
Publication number | Publication date |
---|---|
CN116939291B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109168078B (zh) | 一种视频清晰度切换方法及装置 | |
CN112291627B (zh) | 一种视频编辑方法、装置、移动终端和存储介质 | |
US20200322684A1 (en) | Video recommendation method and apparatus | |
KR100579387B1 (ko) | 디지털 정보의 효율적인 전송 및 재생 | |
US20170111414A1 (en) | Video playing method and device | |
US20150062353A1 (en) | Audio video playback synchronization for encoded media | |
JP5174675B2 (ja) | トリガを伴わない双方向テレビ | |
US20090079840A1 (en) | Method for intelligently creating, consuming, and sharing video content on mobile devices | |
CN104837051B (zh) | 视频播放方法及客户端 | |
CN110692251B (zh) | 组合数字视频内容的方法及系统 | |
CN108174280B (zh) | 一种音视频在线播放方法及系统 | |
US20100322310A1 (en) | Video Processing Method | |
CN101444092A (zh) | 视频播放装置,视频播放方法,以及视频播放程序 | |
US10129592B2 (en) | Audience measurement and feedback system | |
WO2018130173A1 (zh) | 配音方法、终端设备、服务器及存储介质 | |
CN109168020A (zh) | 基于直播的视频处理方法、装置、计算设备和存储介质 | |
CN113225585A (zh) | 一种视频清晰度的切换方法、装置、电子设备以及存储介质 | |
CN105763949A (zh) | 一种影音文件播放方法和装置 | |
CN114827663A (zh) | 分布式直播插帧系统及方法 | |
CN104184980A (zh) | 一种数据处理方法及电子设备 | |
CN116939291B (zh) | 一种视频快速拆条方法及相关装置 | |
CN112019878B (zh) | 一种视频解码和编辑的方法、装置、设备和存储介质 | |
CN102118633B (zh) | 视频文件播放的方法、装置及系统 | |
CN114245229B (zh) | 一种短视频制作方法、装置、设备以及存储介质 | |
CN103165157A (zh) | 定位无索引avi 文件播放位置的方法、装置及播放器 |
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 |