CN111432243A - 视频转码方法及装置 - Google Patents
视频转码方法及装置 Download PDFInfo
- Publication number
- CN111432243A CN111432243A CN202010247902.0A CN202010247902A CN111432243A CN 111432243 A CN111432243 A CN 111432243A CN 202010247902 A CN202010247902 A CN 202010247902A CN 111432243 A CN111432243 A CN 111432243A
- Authority
- CN
- China
- Prior art keywords
- video
- thread
- transcoding
- transcoded
- video transcoding
- 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 34
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 239000002184 metal Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种视频转码方法及装置,方法包括:检测预先创建的线程池中是否存在至少一个处于空闲状态的线程,如果线程池中存在至少一个处于空闲状态的线程,则获取至少一个待执行的目标视频转码任务,并将各个目标视频转码任务分配给各个处于空闲状态的线程,其中,不同的目标视频转码任务分配给不同的处于空闲状态的线程,被分配目标视频转码任务的线程的状态被置于占用状态;针对每一个分配有目标视频转码任务的线程,利用该线程对分配给其的目标视频转码任务进行视频转码处理,并在视频转码处理完成获得相对应的转码视频后将该线程的状态置于空闲状态。本发明的方案能够提高视频转码效率。
Description
技术领域
本发明涉及流媒体处理技术领域,特别涉及视频转码方法及装置。
背景技术
随着移动互联网的快速发展,视频点播和直播成为了人们日常生活中常见的娱乐方式,因此,对视频转码技术的要求也达到了新的高度。在使用视频点播和直播服务时,会产生大量的流媒体视频数据需要进行转码,如何提高视频转码的效率变得越来越重要。
目前,在进行视频转码时,只能通过单线程去进行视频的转码,相当于在某一个时间点上,处理器同时只能进行一个视频的解码,效率不高。
因此,需要一种方式来提高视频转码的效率。
发明内容
本发明实施例提供了视频转码方法及装置,能够提高视频转码的效率。
第一方面,本发明实施例提供了视频转码方法,包括:
检测预先创建的线程池中是否存在至少一个处于空闲状态的线程,其中,所述线程池中包括有至少两个所述线程,各个所述线程可以同时对所分配的视频转码任务进行执行;
如果所述线程池中存在至少一个处于空闲状态的所述线程,则获取至少一个待执行的目标视频转码任务,并将各个所述目标视频转码任务分配给各个处于空闲状态的所述线程,其中,不同的所述目标视频转码任务分配给不同的处于空闲状态的所述线程,被分配所述目标视频转码任务的所述线程的状态被置于占用状态;
针对每一个分配有所述目标视频转码任务的所述线程,利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,并在视频转码处理完成获得相对应的转码视频后将该线程的状态置于空闲状态。
优选地,
所述利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,包括:
根据分配给该线程的所述目标视频转码任务所包括的视频地址,获取相对应的待转码视频;
利用该线程对所述待转码视频进行解析,获得所述待转码视频的第一码率、第一帧率、第一分辨率和第一声道;
从分配给该线程的所述目标视频转码任务中获得第二码率、第二帧率、第二分辨率和第二声道;
根据所述第一码率、所述第一帧率、所述第一分辨率和所述第一声道以及所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道,对所述待转码视频进行转码处理,获得所述转码视频,其中,所述转码视频的码率、帧率、分辨率和声道分别为所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道。
优选地,
在所述视频转码处理完成获得相对应的转码视频之后,还包括:
将所述转码视频发送给存储服务器,并将所述转码视频的视频信息和所述转码视频在所述存储服务器上的存储地址信息发送给数据库,以使用户能够从所述数据库中查看所述视频信息和所述存储地址信息。
优选地,
还包括:根据预先设定的扫描周期,对用于存储视频转码任务的数据库进行扫描,以获取所述目标视频转码任务。
优选地,
还包括:针对每一个所述线程,获取该线程对所述目标视频转码任务进行视频转码处理的转码进度信息;
将所述转码进度信息发送给数据库,以使用户能够从所述数据库获取对所述目标视频转换转码任务进行视频转码处理的转码进度信息。
第二方面,本发明实施例提供了视频转码装置,包括:
扫描模块、分配模块和处理模块;
扫描模块于所述分配模块相连,所述分配模块与所述处理模块相连;
所述扫描模块,用于检测预先创建的线程池中是否存在至少一个处于空闲状态的线程,其中,所述线程池中包括有至少两个所述线程,各个所述线程可以同时对所分配的视频转码任务进行执行;
所述分配模块,用于在所述扫描模块确定检测到所述线程池中存在至少一个处于空闲状态的所述线程时,获取至少一个待执行的目标视频转码任务,并将各个所述目标视频转码任务分配给各个处于空闲状态的所述线程,其中,不同的所述目标视频转码任务分配给不同的处于空闲状态的所述线程,被分配所述目标视频转码任务的所述线程的状态被置于占用状态;
所述处理模块,用于针对由所述分配模块分配了所述目标视频转码任务的每一个所述线程,利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,并在视频转码处理完成获得相对应的转码视频后将该线程的状态置于空闲状态。
优选地,
所述处理模块在执行所述利用该线程对分配给其的所述目标视频转码任务进行视频转码处理时,用于执行如下处理:
根据分配给该线程的所述目标视频转码任务所包括的视频地址,获取相对应的待转码视频;
利用该线程对所述待转码视频进行解析,获得所述待转码视频的第一码率、第一帧率、第一分辨率和第一声道;
从分配给该线程的所述目标视频转码任务中获得第二码率、第二帧率、第二分辨率和第二声道;
根据所述第一码率、所述第一帧率、所述第一分辨率和所述第一声道以及所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道,对所述待转码视频进行转码处理,获得所述转码视频,其中,所述转码视频的码率、帧率、分辨率和声道分别为所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道。
优选地,
还包括:发送模块;
所述发送模块,用于将所述处理模块获取到的所述转码视频发送给存储服务器,并将所述转码视频的视频信息和所述转码视频在所述存储服务器上的存储地址信息发送给数据库,以使用户能够从所述数据库中查看所述视频信息和所述存储地址信息。
优选地,
所述扫描模块,用于根据预先设定的扫描周期,对用于存储视频转码任务的数据库进行扫描,以获取所述目标视频转码任务。
优选地,
还包括:获取模块;
所述获取模块,用于针对每一个所述线程,获取该线程对所述目标视频转码任务进行视频转码处理的转码进度信息,并将所述转码进度信息发送给数据库,以使用户能够从所述数据库获取对所述目标视频转换转码任务进行视频转码处理的转码进度信息。
本发明实施例提供了视频转码方法和视频转码装置,为了利用多线程来执行多个任务,首先创建一个线程池,线程池中包括至少两个能执行视频转码任务的线程。在检测到线程池中有至少一个空闲状态的线程时,获取对应数量的待执行的目标视频转码任务,并将目标视频转码任务分别分配给空闲状态的线程,被分配了任务的线程的状态变为占用状态。每个被分配了任务的线程,根据目标视频转码任务进行视频转码处理,在视频转码处理完成并获得对应的转码视频后变为空闲状态,处于空闲状态的线程又可以继续接收新的转码任务,通过本发明提供的方法,能够实现多个线程同时执行多个任务,并且每个线程都会不断的接收新的转码任务,提高了视频转码的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种视频转码方法的流程图;
图2是本发明一实施例提供的一种视频转码装置的示意图;
图3是本发明一实施例提供的另一种视频转码方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示。本发明一实施例提供了视频转码方法,该方法可以包括以下步骤:
步骤101:检测预先创建的线程池中是否存在至少一个处于空闲状态的线程,其中,所述线程池中包括有至少两个所述线程,各个所述线程可以同时对所分配的视频转码任务进行执行。
步骤102:如果所述线程池中存在至少一个处于空闲状态的所述线程,则获取至少一个待执行的目标视频转码任务,并将各个所述目标视频转码任务分配给各个处于空闲状态的所述线程,其中,不同的所述目标视频转码任务分配给不同的处于空闲状态的所述线程,被分配所述目标视频转码任务的所述线程的状态被置于占用状态。
步骤103:针对每一个分配有所述目标视频转码任务的所述线程,利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,并在视频转码处理完成获得相对应的转码视频后将该线程的状态置于空闲状态。
具体来说,预先设置的线程池中包含了多个能够处理转码任务的线程,每个线程能够同时且独立的处理线程中所分配的转码任务。比如说可以设置一个包含十个线程的线程池,相当于该线程池能够容纳最多十个视频的转码任务。当线程池中存在一个或多个空闲状态的线程被检测到,根据处于空闲状态的线程的数量去获取相同数量的目标转码任务,将各个目标转码任务分配给各个处于空闲状态的线程,在线程被分配了转码任务后,线程不再处于空闲状态,而是处于被占用状态,由于处于被占用状态而非空闲状态,因此不会再被分配任务。在线程被分配完转码任务后,根据转码任务进行对应的视频转码处理,在某个线程的转码任务完成后,该线程被释放,被重置为空闲状态,可以再被分配新的视频转码任务。通过该方法,在线程池中的十个线程都能够同时执行所分配的转码任务,并在转码任务结束后能接着处理下一个任务,合理地安排了所有接收到了所有地转码任务,提高了视频转码的效率。
在本发明一实施例中,步骤103中所述利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,包括:
根据分配给该线程的所述目标视频转码任务所包括的视频地址,获取相对应的待转码视频;
利用该线程对所述待转码视频进行解析,获得所述待转码视频的第一码率、第一帧率、第一分辨率和第一声道;
从分配给该线程的所述目标视频转码任务中获得第二码率、第二帧率、第二分辨率和第二声道;
根据所述第一码率、所述第一帧率、所述第一分辨率和所述第一声道以及所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道,对所述待转码视频进行转码处理,获得所述转码视频,其中,所述转码视频的码率、帧率、分辨率和声道分别为所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道。
具体来说,目标视频转码任务中包含了需要被转码的视频的地址,通过访问该地址,能够获取到待转码视频。在获取到待转码视频后,利用其所在的线程解析待转码视频的第一码率、第一帧率、第一分辨率和第一声道,这些参数是视频最基本的参数。从该线程的被分配的目标转码任务中获取目标转码任务中包含的第二码率、第二帧率、第二分辨率和第二声道,所述第二码率、第二帧率、第二分辨率和第二声道可以是用户自定义的参数。之后,在线程中根据第一码率、第一帧率、第一分辨率和第一声道以及第二码率、第二帧率、第二分辨率和第二声道对待转码视频进行处理,将待转码视频的码率、帧率、分辨率和声道转码为第二码率、第二帧率、第二分辨率和第二声道,生成相应的转码视频。由于结合了原待转码视频的参数和转码任务中包含的参数,因此生成的转码视频适配了原带转码视频的数据和任务所需的自定义的转码数据,因此能够符合用户的转码要求。
在本发明一实施例中,步骤103中视频转码处理完成后获得了相对应的转码视频之后,还可以包括:
将所述转码视频发送给存储服务器,并将所述转码视频的视频信息和所述转码视频在所述存储服务器上的存储地址信息发送给数据库,以使用户能够从所述数据库中查看所述视频信息和所述存储地址信息。
具体来说,在执行完转码任务后,生成了对应的转码视频,将转码视频发送给存储服务器。之后,将转码视频的视频信息和转码视频在存储服务器上的地址发送给数据库,用户通过打开数据库能够查看上述的视频信息和转码视频在存储服务器上的地址,用户通过查看视频信息,能够了解转码视频的相关信息,通过访问转码视频在存储服务器上的地址,能够查看或下载转码视频。视频信息包括但不限于转码视频的码率、帧率、分辨率、声道、视频大小和视频格式等信息。
在本发明一实施例中,视频转码方法还可以包括:根据预先设定的扫描周期,对用于存储视频转码任务的数据库进行扫描,以获取所述目标视频转码任务。
具体来说,用户可以根据自己期望的扫描周期,设置扫描待转码任务所在的数据库的扫描周期,设置之后,会以用户期望的时间周期对数据库进行扫描并从数据库中获取目标视频转码任务,使转码任务的处理时间更符合用户的预期。
在本发明一实施例中,该视频转码方法还可以包括:针对每一个所述线程,获取该线程对所述目标视频转码任务进行视频转码处理的转码进度信息;
将所述转码进度信息发送给数据库,以使用户能够从所述数据库获取对所述目标视频转换转码任务进行视频转码处理的转码进度信息。
具体来说,在目标视频转码任务在其所在的线程中被执行转码任务时,会根据任务的执行程度生成目标视频转码任务的转码进度信息,转码进度信息可以是目标转码任务当前完成的百分比或者估算出的剩余完成时间。将转码进度信息发送给数据库,用户通过访问数据库,能够看到实时各个线程中正在执行的视频转码任务的进度,了解任务大概的完成时间。
如图2所示,本发明一实施例提供了视频转码装置,包括:扫描模块201、分配模块202和处理模块203;
扫描模块201和所述分配模块202相连,所述处理模块203与所述分配模块相连;
所述扫描模块201,用于检测预先创建的线程池中是否存在至少一个处于空闲状态的线程,其中,所述线程池中包括有至少两个所述线程,各个所述线程可以同时对所分配的视频转码任务进行执行;
所述分配模块202,用于在所述扫描模块确定检测到所述线程池中存在至少一个处于空闲状态的所述线程时,获取至少一个待执行的目标视频转码任务,并将各个所述目标视频转码任务分配给各个处于空闲状态的所述线程,其中,不同的所述目标视频转码任务分配给不同的处于空闲状态的所述线程,被分配所述目标视频转码任务的所述线程的状态被置于占用状态;
所述处理模块203,用于针对由所述分配模块分配了所述目标视频转码任务的每一个所述线程,利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,并在视频转码处理完成获得相对应的转码视频后将该线程的状态置于空闲状态。
在本发明一实施例中,所述处理模块203在执行所述利用该线程对分配给其的所述目标视频转码任务进行视频转码处理时,用于执行如下处理:
根据分配给该线程的所述目标视频转码任务所包括的视频地址,获取相对应的待转码视频;
利用该线程对所述待转码视频进行解析,获得所述待转码视频的第一码率、第一帧率、第一分辨率和第一声道;
从分配给该线程的所述目标视频转码任务中获得第二码率、第二帧率、第二分辨率和第二声道;
根据所述第一码率、所述第一帧率、所述第一分辨率和所述第一声道以及所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道,对所述待转码视频进行转码处理,获得所述转码视频,其中,所述转码视频的码率、帧率、分辨率和声道分别为所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道。
在本发明一实施例中,该视频转码装置还可以包括:发送模块;
所述发送模块,用于将所述处理模块获取到的所述转码视频发送给存储服务器,并将所述转码视频的视频信息和所述转码视频在所述存储服务器上的存储地址信息发送给数据库,以使用户能够从所述数据库中查看所述视频信息和所述存储地址信息。
在本发明一实施例中,所述扫描模块201,用于根据预先设定的扫描周期,对用于存储视频转码任务的数据库进行扫描,以获取所述目标视频转码任务。
在本发明一实施例中,该视频解码装置还可以包括:获取模块;
所述获取模块,用于针对每一个所述线程,获取所述处理模块利用该线程对所述目标视频转码任务进行视频转码处理的转码进度信息,并将所述转码进度信息发送给数据库,以使用户能够从所述数据库获取对所述目标视频转换转码任务进行视频转码处理的转码进度信息。
可以理解的是,本发明实施例示意的结构并不构成对视频转码装置的具体限定。在本发明的另一些实施例中,视频转码装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
为了使本发明的实现过程更加清楚,优点更加明显,下面举例对本发明提供的方案做详细说明。
如图3所示,本发明一实施例提供了一种视频转码方法,包括如下步骤:
步骤301:根据预设的扫描周期,检测预先创建的线程池中是否存在至少一个处于空闲状态的线程。
举例来说,本发明采用了Java高级语言进行多线程的处理,通过通用处理器CPU作为主机端运行主程序。创建一个包含十个进程的线程池,每个进程都可以对所分配的视频转码任务进行执行,最多允许十个视频转码任务同时进行。用户预设的扫描周期为一分钟,在到达一分钟的扫描周期时,检测该线程池中是否存在处于空闲状态的线程,经检测,发现有一个线程处于空闲状态。
步骤302:确定待执行的目标视频转码任务,将目标视频转码任务分配给处于空闲状态的线程。
具体来说,此时有线程池中有一个进程处于空闲状态,由于每个线程同时只能执行一个任务,确定一个待执行的目标视频转码任务,将该目标视频转码任务放到处于空闲状态的线程中,该线程开始执行目标视频转码任务,不再处于空白状态,不再接受新的转码任务。
步骤303:获取待转码视频,根据目标视频转码任务包含的任务参数执行目标视频转码任务。
具体来说,通过转码任务中包含的视频地址,获取待转码视频。待转码视频可以是保存在服务器的本地视频,也可以是从对象存储的开源视频。通过ffmpeg开源组件解析获取到的待转码视频,获取待转码视频的第一码率为600kbps,第一帧率为24帧,第一分辨率为1080*720,声道为单声道。从目标转码任务中获取目标转码任务包含的任务参数,包含:第二码率700kbps,第二帧率30帧,第二分辨率1080*828,声道为双声道,根据上述数据,对待转码视频进行转码处理,获得码率700kbps,30帧,分辨率为1080*828的双声道的转码视频。在完成目标转码任务的过程时,定时获取解码进度,将解码进度发送给数据库,在用户访问数据库中的转码进度时,会生成一个包含转码进度的弹窗,让用户直观的看到当前的转码进度。
步骤304:将转码视频发送给存储服务器,将转码视频的信息和地址发送给数据库。
具体来说,存储服务器可以为云对象存储服务,发送完成后,云对象存储服务确定转码视频在云端保存的视频地址,获取该视频地址,将视频地址和转码视频的视频信息发送给数据库,视频信息可以包括视频的名称、大小、格式等参数。用户通过访问服务器,能够获取到转码视频的信息,并通过视频地址在线观看或下载转码视频。
本发明各实施例至少具有以下优点:
1、在本发明实施例中,每个被分配了任务的线程,根据目标视频转码任务进行视频转码处理,在视频转码处理完成并获得对应的转码视频后变为空闲状态,处于空闲状态的线程又可以继续接收新的转码任务,通过本发明提供的方法,能够实现多个线程同时执行多个任务,并且每个线程都会不断的接收新的转码任务,提高了视频转码的效率。
2、在本发明实施例中,不仅可以将保存在服务器本地的视频进行转码操作,还可以对保存在对象存储上的开源视频进行转码操作,提高了可用性。
3、在本发明实施例中,使用ffmpeg开源组件对原视频进行解析数据,然后根据解析数据和用户自定义数据对原视频进行转码操作,生成转码视频,使用ffmpeg对原视频进行解析,其特征在于可以适配原视频数据和用户自定义转码数据,输出符合用户要求的转码视频,提高转码成功率和转码视频质量。
4、在本发明实施例中,转码过程中将转码信息及转码进度发送并在数据库中保存,方便用户查看。此外,转码成功后结束转码任务,将转码后的视频上传到对象存储,同时将转码生成的视频信息和视频地址发送并保存在数据库中,方便用户使用。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件模块可以通过机械方式或电气方式实现。例如,一个硬件模块可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件模块还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (10)
1.视频转码方法,其特征在于,包括:
检测预先创建的线程池中是否存在至少一个处于空闲状态的线程,其中,所述线程池中包括有至少两个所述线程,各个所述线程可以同时对所分配的视频转码任务进行执行;
如果所述线程池中存在至少一个处于空闲状态的所述线程,则获取至少一个待执行的目标视频转码任务,并将各个所述目标视频转码任务分配给各个处于空闲状态的所述线程,其中,不同的所述目标视频转码任务分配给不同的处于空闲状态的所述线程,被分配所述目标视频转码任务的所述线程的状态被置于占用状态;
针对每一个分配有所述目标视频转码任务的所述线程,利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,并在视频转码处理完成获得相对应的转码视频后将该线程的状态置于空闲状态。
2.根据权利要求1所述的方法,其特征在于,
所述利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,包括:
根据分配给该线程的所述目标视频转码任务所包括的视频地址,获取相对应的待转码视频;
利用该线程对所述待转码视频进行解析,获得所述待转码视频的第一码率、第一帧率、第一分辨率和第一声道;
从分配给该线程的所述目标视频转码任务中获得第二码率、第二帧率、第二分辨率和第二声道;
根据所述第一码率、所述第一帧率、所述第一分辨率和所述第一声道以及所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道,对所述待转码视频进行转码处理,获得所述转码视频,其中,所述转码视频的码率、帧率、分辨率和声道分别为所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道。
3.根据权利要求1所述的方法,其特征在于,在所述视频转码处理完成获得相对应的转码视频之后,进一步包括:
将所述转码视频发送给存储服务器,并将所述转码视频的视频信息和所述转码视频在所述存储服务器上的存储地址信息发送给数据库,以使用户能够从所述数据库中查看所述视频信息和所述存储地址信息。
4.根据权利要求1所述的方法,其特征在于,进一步包括:
根据预先设定的扫描周期,对用于存储视频转码任务的数据库进行扫描,以获取所述目标视频转码任务。
5.根据权利要求1-4中任一所述的方法,其特征在于,进一步包括:
针对每一个所述线程,获取该线程对所述目标视频转码任务进行视频转码处理的转码进度信息;
将所述转码进度信息发送给数据库,以使用户能够从所述数据库获取对所述目标视频转换转码任务进行视频转码处理的转码进度信息。
6.视频转码装置,其特征在于,包括:
扫描模块、分配模块和处理模块;
扫描模块于所述分配模块相连,所述分配模块与所述处理模块相连;
所述扫描模块,用于检测预先创建的线程池中是否存在至少一个处于空闲状态的线程,其中,所述线程池中包括有至少两个所述线程,各个所述线程可以同时对所分配的视频转码任务进行执行;
所述分配模块,用于在所述扫描模块确定检测到所述线程池中存在至少一个处于空闲状态的所述线程时,获取至少一个待执行的目标视频转码任务,并将各个所述目标视频转码任务分配给各个处于空闲状态的所述线程,其中,不同的所述目标视频转码任务分配给不同的处于空闲状态的所述线程,被分配所述目标视频转码任务的所述线程的状态被置于占用状态;
所述处理模块,用于针对由所述分配模块分配了所述目标视频转码任务的每一个所述线程,利用该线程对分配给其的所述目标视频转码任务进行视频转码处理,并在视频转码处理完成获得相对应的转码视频后将该线程的状态置于空闲状态。
7.根据权利要求6所述的装置,其特征在于,
所述处理模块在执行所述利用该线程对分配给其的所述目标视频转码任务进行视频转码处理时,用于执行如下处理:
根据分配给该线程的所述目标视频转码任务所包括的视频地址,获取相对应的待转码视频;
利用该线程对所述待转码视频进行解析,获得所述待转码视频的第一码率、第一帧率、第一分辨率和第一声道;
从分配给该线程的所述目标视频转码任务中获得第二码率、第二帧率、第二分辨率和第二声道;
根据所述第一码率、所述第一帧率、所述第一分辨率和所述第一声道以及所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道,对所述待转码视频进行转码处理,获得所述转码视频,其中,所述转码视频的码率、帧率、分辨率和声道分别为所述第二码率、所述第二帧率、所述第二分辨率和所述第二声道。
8.根据权利要求6所述的装置,其特征在于,
进一步包括:发送模块;
所述发送模块,用于将所述处理模块获取到的所述转码视频发送给存储服务器,并将所述转码视频的视频信息和所述转码视频在所述存储服务器上的存储地址信息发送给数据库,以使用户能够从所述数据库中查看所述视频信息和所述存储地址信息。
9.根据权利要求6所述的装置,其特征在于,
所述扫描模块,进一步用于根据预先设定的扫描周期,对用于存储视频转码任务的数据库进行扫描,以获取所述目标视频转码任务。
10.根据权利要求6-9中任一所述的装置,其特征在于,
进一步包括:获取模块;
所述获取模块,用于针对每一个所述线程,获取所述处理模块利用该线程对所述目标视频转码任务进行视频转码处理的转码进度信息,并将所述转码进度信息发送给数据库,以使用户能够从所述数据库获取对所述目标视频转换转码任务进行视频转码处理的转码进度信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010247902.0A CN111432243A (zh) | 2020-04-01 | 2020-04-01 | 视频转码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010247902.0A CN111432243A (zh) | 2020-04-01 | 2020-04-01 | 视频转码方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111432243A true CN111432243A (zh) | 2020-07-17 |
Family
ID=71550416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010247902.0A Pending CN111432243A (zh) | 2020-04-01 | 2020-04-01 | 视频转码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111432243A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783481A (zh) * | 2021-02-27 | 2021-05-11 | 中电万维信息技术有限责任公司 | 一种基于java多线程并发的ffmpeg转码方法 |
CN113727110A (zh) * | 2021-08-27 | 2021-11-30 | 猪八戒股份有限公司 | 将h264格式转换为mp4格式的方法、装置及介质 |
CN114286107A (zh) * | 2021-12-30 | 2022-04-05 | 武汉华威科智能技术有限公司 | 一种提高实时视频处理效率的方法、系统、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103702125A (zh) * | 2013-12-23 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 针对分片转码调度的方法和系统 |
CN104469396A (zh) * | 2014-12-24 | 2015-03-25 | 北京中科大洋信息技术有限公司 | 一种分布式转码系统和方法 |
CN105162863A (zh) * | 2015-09-01 | 2015-12-16 | 北京皮尔布莱尼软件有限公司 | 一种图片上传装置、方法和计算设备 |
CN105898554A (zh) * | 2015-12-18 | 2016-08-24 | 乐视云计算有限公司 | 实时转码的监控方法和实时转码系统 |
CN107463439A (zh) * | 2017-08-21 | 2017-12-12 | 山东浪潮通软信息科技有限公司 | 一种线程池实现方法及装置 |
CN108551580A (zh) * | 2018-04-04 | 2018-09-18 | 武汉斗鱼网络科技有限公司 | 一种电子设备中视频文件转码方法及电子设备 |
WO2020010709A1 (zh) * | 2018-07-13 | 2020-01-16 | 网宿科技股份有限公司 | 一种转码任务的分配方法及调度设备、转码设备 |
-
2020
- 2020-04-01 CN CN202010247902.0A patent/CN111432243A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103702125A (zh) * | 2013-12-23 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 针对分片转码调度的方法和系统 |
CN104469396A (zh) * | 2014-12-24 | 2015-03-25 | 北京中科大洋信息技术有限公司 | 一种分布式转码系统和方法 |
CN105162863A (zh) * | 2015-09-01 | 2015-12-16 | 北京皮尔布莱尼软件有限公司 | 一种图片上传装置、方法和计算设备 |
CN105898554A (zh) * | 2015-12-18 | 2016-08-24 | 乐视云计算有限公司 | 实时转码的监控方法和实时转码系统 |
CN107463439A (zh) * | 2017-08-21 | 2017-12-12 | 山东浪潮通软信息科技有限公司 | 一种线程池实现方法及装置 |
CN108551580A (zh) * | 2018-04-04 | 2018-09-18 | 武汉斗鱼网络科技有限公司 | 一种电子设备中视频文件转码方法及电子设备 |
WO2020010709A1 (zh) * | 2018-07-13 | 2020-01-16 | 网宿科技股份有限公司 | 一种转码任务的分配方法及调度设备、转码设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783481A (zh) * | 2021-02-27 | 2021-05-11 | 中电万维信息技术有限责任公司 | 一种基于java多线程并发的ffmpeg转码方法 |
CN113727110A (zh) * | 2021-08-27 | 2021-11-30 | 猪八戒股份有限公司 | 将h264格式转换为mp4格式的方法、装置及介质 |
CN114286107A (zh) * | 2021-12-30 | 2022-04-05 | 武汉华威科智能技术有限公司 | 一种提高实时视频处理效率的方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10924783B2 (en) | Video coding method, system and server | |
CN111432243A (zh) | 视频转码方法及装置 | |
CN109918184B (zh) | 图片处理系统、方法及相关装置和设备 | |
US20170026721A1 (en) | System and Methods Thereof for Auto-Playing Video Content on Mobile Devices | |
CN111669577A (zh) | 一种硬件解码检测方法、装置、电子设备及存储介质 | |
CN109089169A (zh) | 一种直播间切换方法、装置及存储介质 | |
CN104053015A (zh) | 一种传输媒体数据的方法及虚拟桌面服务器 | |
US20170171281A1 (en) | Play method and apparatus and mobile terminal device for android platform | |
CN114339412A (zh) | 视频质量增强方法、移动终端、存储介质及装置 | |
US20210168331A1 (en) | Methods, systems and apparatus for providing video communications | |
CN114040189A (zh) | 多媒体测试方法、装置、存储介质及电子设备 | |
CN109948082B (zh) | 直播信息处理方法及装置、电子设备、存储介质 | |
CN114257572A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
US20220374618A1 (en) | Interaction information processing method and apparatus, device, and medium | |
CN107734396B (zh) | 一种多媒体资源播放方法、装置及存储介质 | |
CN113179261B (zh) | 视频流处理方法及装置、存储介质和平台服务器 | |
CN103974087B (zh) | 视频图像文件压缩系统、客户端及方法 | |
US20230333800A1 (en) | Screen projection method and apparatus, electronic device and computer readable storage medium | |
JP5506250B2 (ja) | ストリーム復号装置及びストリーム復号方法 | |
CN112995702B (zh) | 基于质量监测探针判断视频卡顿的方法及系统 | |
CN109886234B (zh) | 目标检测方法、装置、系统、电子设备、存储介质 | |
CN113923443A (zh) | 一种网络录像机测试方法、装置及计算机可读存储介质 | |
CN108111900B (zh) | 一种播放速度控制方法及装置 | |
US10511650B2 (en) | Quality of service system for a service provider that provides media content via a satellite media distribution system and a terrestrial media distribution system | |
CN105228034B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200717 |
|
RJ01 | Rejection of invention patent application after publication |