CN117336530A - 图片转码方法、装置、服务器及存储介质 - Google Patents

图片转码方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN117336530A
CN117336530A CN202311228055.3A CN202311228055A CN117336530A CN 117336530 A CN117336530 A CN 117336530A CN 202311228055 A CN202311228055 A CN 202311228055A CN 117336530 A CN117336530 A CN 117336530A
Authority
CN
China
Prior art keywords
transcoding
picture
work
task
thread
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
Application number
CN202311228055.3A
Other languages
English (en)
Inventor
尹东洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202311228055.3A priority Critical patent/CN117336530A/zh
Publication of CN117336530A publication Critical patent/CN117336530A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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
    • H04N21/234309Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/241Operating system [OS] processes, e.g. server setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开关于一种图片转码方法、装置、服务器及存储介质,属于计算机技术领域。该图片转码方法包括:接收终端发送的作品发布请求,所述作品发布请求携带待发布的图片作品;按照转码降级的顺序,对所述图片作品依次执行多个转码任务,所述多个转码任务用于将所述图片作品转码成不同的格式;其中,若对所述图片作品执行的任一转码任务失败,则继续执行所述转码任务的下一转码任务,并对所述转码任务进行异步重试;在得到任一转码后的图片作品后,对所述转码后的图片作品进行发布。该方法采用自动降级和异步补偿机制,提高了图片转码流程的可用性。

Description

图片转码方法、装置、服务器及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种图片转码方法、装置、服务器及存储介质。
背景技术
随着计算机技术和互联网技术的飞速发展,用户可以通过终端上安装的应用客户端发布图片作品,以供其他用户浏览该图片作品。由于不同终端在不同的场景下对于图片有不同的格式需求,因此,用户将图片作品上传至服务端之后,服务端先将用户上传的图片作品转码成多种不同的格式,再基于多种不同格式的该图片作品,向其他终端分发该图片作品等。
目前服务端的转码流程如图1所示,在接收到用户上传的图片作品之后,依次对该图片作品进行JPG(Joint Photographic Group,联合图像专家组)转码、WEBP转码和HEIF(High Efficiency Image File Format,高效图像文件格式)转码,三种转码全部成功之后,便可以基于不同终端对图片的不同格式需求,向不同终端分发转码后的图片作品。
然而上述转码流程中,任一种转码失败都会导致服务端退出转码,导致整个转码流程失败,从而导致图片作品无法发布,转码流程的可用性较差。
发明内容
本公开提供一种图片转码方法、装置、服务器及存储介质,能够提高转码流程的可用性。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种图片转码方法,所述图片转码方法包括:
接收终端发送的作品发布请求,所述作品发布请求携带待发布的图片作品;
按照转码降级的顺序,对所述图片作品依次执行多个转码任务,所述多个转码任务用于将所述图片作品转码成不同的格式;
其中,若对所述图片作品执行的任一转码任务失败,则继续执行所述转码任务的下一转码任务,并对所述转码任务进行异步重试;
在得到任一转码后的图片作品后,对所述转码后的图片作品进行发布。
在一些实施例中,所述对所述图片作品依次执行多个转码任务,包括:
通过第一线程,对所述图片作品依次执行所述多个转码任务;
所述若对所述图片作品执行的任一转码任务失败,则继续执行所述转码任务的下一转码任务,并对所述转码任务进行异步重试,包括:
若通过所述第一线程对所述图片作品执行的任一转码任务失败,则通过所述第一线程继续执行所述转码任务的下一转码任务,并启动第二线程,通过所述第二线程对所述图片作品执行所述转码任务;
其中,所述第一线程和所述第二线程并行运行。
在一些实施例中,若对所述图片作品执行的任一转码任务失败,对所述转码任务进行异步重试,包括:
每当通过所述第一线程对所述图片作品执行的转码任务失败时,启动一个新的线程,通过所述新的线程对所述图片作品执行所述转码任务。
在一些实施例中,所述启动第二线程,通过所述第二线程对所述图片作品执行所述转码任务,包括:
通过所述第二线程,对所述图片作品执行所述转码任务;
若通过所述第二线程对所述图片作品执行的所述转码任务失败,则通过所述第二线程重复执行所述转码任务,直至执行所述转码任务成功,或者,直至达到预设重复次数。
在一些实施例中,所述在得到任一转码后的图片作品后,对所述转码后的图片作品进行发布,包括以下任一项:
在对所述图片作品执行完所述多个转码任务之后,将执行成功的转码任务所生成的图片作品进行发布;
在对所述图片作品依次执行所述多个转码任务的过程中,响应于任一转码任务执行成功,将所述转码任务所生成的图片作品进行发布;
在失败的转码任务重试成功之后,将所述转码任务所生成的图片作品进行发布。
在一些实施例中,所述图片转码方法还包括:
在对所述图片作品依次执行所述多个转码任务之后,若所述多个转码任务均失败,则对所述作品发布请求携带的图片作品进行发布。
在一些实施例中,所述按照转码降级的顺序,对所述图片作品依次执行多个转码任务,包括:
按照压缩比从高到低的顺序,对所述图片作品依次执行所述多个转码任务。
根据本公开实施例的第二方面,提供了一种图片转码装置,所述图片转码装置包括:
接收单元,被配置为执行接收终端发送的作品发布请求,所述作品发布请求携带待发布的图片作品;
第一转码单元,被配置为执行按照转码降级的顺序,对所述图片作品依次执行多个转码任务,所述多个转码任务用于将所述图片作品转码成不同的格式;
其中,若对所述图片作品执行的任一转码任务失败,则所述第一转码单元被配置为执行继续执行所述转码任务的下一转码任务,第二转码单元被配置为执行对所述转码任务进行异步重试;
发布单元,被配置为执行在得到任一转码后的图片作品后,对所述转码后的图片作品进行发布。
在一些实施例中,所述第一转码单元,被配置为执行通过第一线程,对所述图片作品依次执行所述多个转码任务;
若通过所述第一线程对所述图片作品执行的任一转码任务失败,则所述第一转码单元被配置为执行通过所述第一线程继续执行所述转码任务的下一转码任务,所述第二转码单元被配置为执行启动第二线程,通过所述第二线程对所述图片作品执行所述转码任务;
其中,所述第一线程和所述第二线程并行运行。
在一些实施例中,每当通过所述第一线程对所述图片作品执行的转码任务失败时,所述第二转码单元被配置为执行启动一个新的线程,通过所述新的线程对所述图片作品执行所述转码任务。
在一些实施例中,所述第二转码单元被配置为执行通过所述第二线程,对所述图片作品执行所述转码任务;若通过所述第二线程对所述图片作品执行的所述转码任务失败,则通过所述第二线程重复执行所述转码任务,直至执行所述转码任务成功,或者,直至达到预设重复次数。
在一些实施例中,所述发布单元,被配置为执行以下至少一项:
在对所述图片作品执行完所述多个转码任务之后,将执行成功的转码任务所生成的图片作品进行发布;
在对所述图片作品依次执行所述多个转码任务的过程中,响应于任一转码任务执行成功,将所述转码任务所生成的图片作品进行发布;
在失败的转码任务重试成功之后,将所述转码任务所生成的图片作品进行发布。
在一些实施例中,所述发布单元,还被配置为执行在对所述图片作品依次执行所述多个转码任务之后,若所述多个转码任务均失败,则对所述作品发布请求携带的图片作品进行发布。
在一些实施例中,所述第一转码单元,被配置为执行按照压缩比从高到低的顺序,对所述图片作品依次执行所述多个转码任务。
根据本公开实施例的第三方面,提供了一种服务器,所述终端包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述方面所述的图片转码方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如上述方面所述的图片转码方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述方面所述的图片转码方法。
在本公开实施例中,采用了转码自动降级和异步补偿机制,极大地降低了失败的转码任务对其他转码任务产生的影响,使得任一转码任务失败之后其他转码任务能够正常执行,提高了图片转码流程的可用性,只要有一个转码任务成功即可对该转码任务生成的图片作品进行分发,降低了图片转码失败对作品发布的影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种相关技术中的图片转码方法的流程图;
图2是根据一示例性实施例示出的一种实施环境的示意图;
图3是根据一示例性实施例示出的一种图片转码方法的流程图;
图4是根据一示例性实施例示出的一种图片转码方法的流程图;
图5是根据一示例性实施例示出的一种图片转码方法的流程图;
图6是根据一示例性实施例示出的一种图片转码方法的流程图;
图7是根据一示例性实施例示出的一种图片转码装置的结构框图;
图8是根据一示例性实施例示出的一种服务器的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的信息可以为经用户授权或者经过各方充分授权的信息。例如,本公开所涉及的图片作品为经用户授权或者经过各方充分授权的信息。
JPG(Joint Photographic Group,联合图像专家组)是用于连续色调静态图像压缩的一种标准,文件后缀名为.jpg或.jpeg,是最常用的图像文件格式。其主要采用预测编码(DPCM)、离散余弦变换(DCT)以及熵编码的联合编码方式,以去除冗余的图像和彩色数据,属于有损压缩格式,能够将图像压缩在很小的储存空间,一定程度上会造成图像数据的损伤。
WEBP(发音:weppy)是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式。
HEIF(High Efficiency Image File Format,高效图像文件格式),是一种高效的图片封装格式,通常的文件后缀名为HEIC。不同于JPEG格式图片,HEIF是一种封装格式,一般HEIF格式的图片,特指以HEVC(H.265)编码器进行压缩的图像文件。
本公开实施例提供了一种图片转码方法,该方法由服务器执行。在一些实施例中,该服务器可以是一台服务器、或者由若干服务器组成的服务器集群,或者是一个云计算服务中心。当然,服务器还可以包括其他功能服务器,以便提供更全面且多样化的服务。
图2是根据一示例性实施例示出的一种实施环境的示意图,如图2所示,该实施环境包括第一终端201、第二终端202和服务器203,该第一终端201和第二终端202分别与服务器203通过有线或无线网络连接。
在一些实施例中,第一终端201和第二终端202上安装由服务器203提供服务的目标应用,第一终端201和第二终端202通过该目标应用实现例如数据传输、消息交互等功能。可选地,目标应用为终端操作系统中的目标应用,或者为第三方提供的目标应用。例如,目标应用为社区类应用、多媒体分享应用等,该目标应用具有发布作品的功能,当然,该目标应用还能够具有其他功能,例如,购物功能、即时通信功能、游戏功能等。
在一些实施例中,第一终端201是发布作品的终端,第二终端202是观看第一终端201所发布的作品的终端。可选地,第一终端201将图片作品上传至服务器203,服务器203将第一终端201上传的图片发布到第二终端202。其中,第一终端201上传的图片作品中的图片是原图,体积较大,在发布时会占用较大的带宽。因此,服务器203在接收到第一终端上传的图片作品之后,会对图片作品进行转码,以减小图片作品的体积,减小图片作品发布时所占用的带宽。
本公开提供的图片转码方法能够应用于服务器将终端的图片作品发送给其他终端的场景。下面对本公开实施例的应用场景进行说明。
例如,图片作品发布场景:终端用户在目标应用中发布自己制作的图片作品,终端将该图片作品发送至服务器,服务器按照转码降级的顺序,对该图片作品依次执行多个转码任务。在服务器对该图片作品依次执行多个转码任务的过程中,若服务器对图片作品执行的任一转码任务失败,则服务器继续执行转码任务的下一任务,并对失败的转码任务进行异步重试。在得到任一转码后的图片作品后,对该转码后的图片作品进行发布。因此,即便某一转码任务失败,也不会影响后续的图片作品发布,提高了转码服务的可用性。
需要说明的是,本公开实施例仅是以上述发布场景进行示例性说明,并不对应用场景进行限制,本公开实施例提供的图片转码方法还能够应用在其他场景下,例如,图片作品分享场景、图片作品转发场景等。
图3是根据一示例性实施例示出的一种图片转码方法的流程图,如图3所示,该图片转码方法由服务器执行,包括以下步骤。
在步骤301中,服务器接收终端发送的作品发布请求,该作品发布请求携带待发布的图片作品。
图片作品是用户基于至少一个图片制作的作品。图片作品包括至少一个图片,也即是,该图片作品可以包括单个图片,也可以包括多个图片,图片作品在进行展示时,可以按照顺序依次播放多个图片,当然,还可以循环播放。在一些实施例中,该图片作品还包括音频,从而在图片作品进行展示时,该音频作为背景音乐进行播放。在一些实施例中,该图片作品还包括文字,从而在图片作品进行展示时,将该文字作为标题进行展示。
作品发布请求用于请求服务器将作品分发到其他终端。该作品发布请求是终端触发的,本公开实施例对作品发布请求的触发方式不做限定,仅进行示例性说明。在一些实施例中,终端响应于对图片作品的发布操作,向服务器发送作品发布请求,该作品发布请求携带该图片作品。该发布操作可以是对发布选项的触发操作,也可以是预设的任一种手势操作。本公开实施例对发布操作不做限定。
在步骤302中,服务器按照转码降级的顺序,对图片作品依次执行多个转码任务,该多个转码任务用于将图片作品转码成不同的格式。
图片作品中的图片通常尺寸较大,若服务器直接将图片作品分发到其他终端,会占用非常大的带宽。为此,服务器在分发图片作品之前,先对图片作品进行转码,以压缩图片作品的尺寸,再对转码后的图片作品进行分发,能够减轻了带宽压力。
需要说明的一点是,图片作品包括至少一个图片,除此之外,还可以包括音频、文字等,本公开实施例中服务器对图片作品执行转码任务是指对图片作品中的图片执行转码任务。
需要说明的另一点是,不同的转码方法会将图片转码成不同的格式,不同格式的图片有不同的好处,本公开实施例以JPG转码方法、WEBP转码方法和HEIF转码方法为例进行示例性说明:
采用JPG转码方法对图片进行转码,会得到JPG格式的图片;采用WEBP转码方法对图片进行转码,会得到WEBP格式的图片;采用HEIF转码方法对图片进行转码,会得到HEIF格式的图片。三种转码方法中,HEIF转码方法的压缩比最高,WEBP转码方法次之,JPG转码方法最低。但是,HEIF格式的兼容性最差,WEBP格式次之,JPG格式最好。
在作品分发尽量减小所占用带宽的基础上,为了保证终端能够顺利浏览图片作品,服务器采用多种转码方法对图片作品进行处理,得到不同格式的图片作品,从不同格式的图片作品中选择适合某一终端的图片作品,将该图片作品发布到该终端。
因此,本公开实施例中,服务器会对图片作品依次执行多个转码任务,一个转码任务对应一种转码方法,通过多个转码任务将图片作品转码成不同的格式以满足不同终端的需求。
另外,本公开实施例中,服务器在对图片作品执行多个转码任务时,会按照转码降级的顺序,对图片作品依次执行多个转码任务。也就是说,服务器最先执行的转码任务是多个转码任务中最优的或者最高级的转码方案。
在步骤303中,若服务器对图片作品执行的任一转码任务失败,则继续执行该转码任务的下一转码任务,并对该转码任务进行异步重试。
转码服务是CPU(Central Processing Unit,中央处理器)敏感性服务,换言之,服务器在对图片作品执行转码任务时,会耗费较多的CPU资源,并且转码的耗时也比较长。因此,转码任务很容易因为其他业务抢占CPU资源、网络较差等原因失败。
为了减少转码任务失败所带来的负面影响(例如,导致剩余转码任务无法执行、导致图片作品无法完成发布等),本公开实施例在服务器对图片作品执行的任一转码任务失败时,跳过该转码任务,继续执行下一转码任务,并且对失败的转码任务进行异步重试。
其中,对失败的转码任务进行异步重试是指:服务器对图片作品依次执行多个转码任务和服务器对失败的转码任务进行重试是异步的。因此,服务器重试失败的转码任务,不会影响服务器对图片作品执行下一转码任务,在保证转码流程顺利进行的同时,进一步保证服务器能够获取到不同格式的转码后的图片作品,以便为不同的终端分发合适的图片作品。
在步骤304中,服务器在得到任一转码后的图片作品后,对转码后的图片作品进行发布。
本公开实施例中,服务器对图片作品依次执行多个转码任务和服务器对失败的转码任务进行重试是异步的,因此,二者得到转码后的图片作品的时机通常是不同的。只要服务器对图片作品依次执行完多个转码任务后,存在执行成功的转码任务,即可得到转码后的图片作品,或者,服务器对失败的转码任务重试成功,也可得到转码后的图片作品,只要得到任一转码后的图片作品,就可以对该转码后的图片作品进行分发,在得到另一种格式的转码后的图片作品之后,再对另一种格式的转码后的图片作品进行分发。无需得到每个转码任务输出的转码后的图片作品,再对转码后的图片作品进行分发,提高了图片作品的分发效率。
本公开实施例提供的一种图片转码方法,采用了转码自动降级和异步补偿机制,极大地降低了失败的转码任务对其他转码任务产生的影响,使得任一转码任务失败之后其他转码任务能够正常执行,提高了图片转码流程的可用性,只要有一个转码任务成功即可对该转码任务生成的图片作品进行分发,降低了图片转码失败对作品发布的影响。
图4是根据一示例性实施例示出的一种图片转码方法的流程图,如图4所示,该图片转码方法由服务器执行,包括以下步骤。
在步骤401中,服务器接收终端发送的作品发布请求,该作品发布请求携带待发布的图片作品。
上述步骤401与上述步骤301同理,在此不再一一赘述。
在步骤402中,服务器通过第一线程,按照转码降级的顺序,对图片作品依次执行多个转码任务。
其中,第一线程可以是服务器中的任一线程,本公开实施例中,第一线程是服务器中用于实现图片转码的线程。
在一些实施例中,考虑到服务器之所以对图片作品进行转码就是为了图片作品分发时减小所占用的带宽。因此,转码方法的压缩比越高,转码方法越优。从而,转码降级的顺序可以是压缩比从高到低的顺序。可选地,服务器通过第一线程,按照转码降级的顺序,对图片作品依次执行多个转码任务,包括:服务器通过第一线程,按照压缩比从高到低的顺序,对图片作品依次执行多个转码任务。通过按照压缩比从高到低的顺序,对图片作品依次执行多个转码任务,能够优先保障压缩比较高的转码,优先保障转码出尺寸较小的图片作品,这样,服务器能够优先基于尺寸较小的转码后的图片作品进行分发,减小了所占用的带宽。
例如,以多个转码任务为JPG转码任务、WEBP转码任务和HEIF转码任务为例进行示例性说明,HEIF转码、WEBP转码和JPG转码的压缩比依次降低,因此,先执行HEIF转码任务,再执行WEBP转码任务,最后执行JPG转码任务。
需要说明的是,多个转码任务的执行顺序可以根据实际需求来确定,当以减小分发所占用的带宽为主要目的时,可以按照压缩比从高到低的顺序,依次执行多个转码任务。而当以保证分发范围为主要目的时,还可以按照兼容性从高到低的顺序,依次执行多个转码任务。
例如,以多个转码任务为JPG转码任务、WEBP转码任务和HEIF转码任务为例进行示例性说明,JPG转码、WEBP转码和HEIF转码的兼容性依次降低,因此,先执行JPG转码任务,再执行WEBP转码任务,最后执行HEIF转码任务。这样,优先保障兼容性比较高的转码,优先保障转码出兼容性较高的图片作品,这样,保障了服务器将转码后的图片作品分发到不同的终端。
需要说明的是,本公开实施例仅是对多个转码任务的执行顺序进行示例性说明,并不对多个转码任务的执行顺序进行限定,多个转码任务的执行顺序可以根据实际需求设定。
在步骤403中,在对图片作品依次执行多个转码任务的过程中,每当通过第一线程对图片作品执行的转码任务失败时,则通过第一线程继续执行该转码任务的下一转码任务,并启动一个新的线程,通过新的线程对图片作品执行转码任务。
本公开实施例中,当通过第一线程对图片作品执行的任一转码任务失败时,则通过第一线程继续执行该转码任务的下一转码任务,避免了失败的转码任务影响其他转码任务的执行,提高了转码流程的可用性。
根据上述步骤302中的记载可知,服务器在向终端发布图片作品时,拥有多种不同格式的图片作品才能满足不同终端的需求。因此,如果任一转码任务失败了,服务器还会启动一个新的线程,通过新的线程重试该失败的转码任务,以保证服务器能够得到多种不同格式的图片作品。其中,新的线程和第一线程是并行运行的两个线程,因此,新的线程不会影响第一线程的运行,进一步提高了转码流程的可用性。
由于每当通过第一线程对图片作品执行的转码任务失败时,均会启动一个新的线程,通过新的线程对图片作品执行转码任务。例如,每当通过第一线程对图片作品执行的转码任务失败时,启动一个新的线程,通过该新的线程对图片作品执行该转码任务,包括:当通过第一线程对图片作品执行的任一转码任务失败时,启动第二线程,通过第二线程对图片作品执行该转码任务;当通过第一线程对图片作品执行的又一转码任务失败时,启动第三线程,通过第三线程对图片作品执行该转码任务;以此类推。
由此可见,当多个转码任务失败时,服务器可以启动多个线程,分别重试该多个转码任务。其中,新启动的线程与第一线程并行运行,且新启动的多个线程之间也是并行运行的,因此,各个线程之间互不影响,各个转码任务的执行也互不影响,提高了转码效率。
例如,以多个转码任务为JPG转码任务、WEBP转码任务和HEIF转码任务为例进行示例性说明,服务器通过第一线程对图片作品执行HEIF转码任务失败之后,启动第二线程,通过第二线程对图片作品执行HEIF转码任务;服务器通过第一线程对图片作品执行WEBP转码任务失败之后,启动第三线程,通过第三线程对图片作品执行WEBP转码任务;服务器通过第一线程对图片作品执行JPG转码任务失败之后,启动第四线程,通过第四线程对图片作品执行JPG转码任务。
需要说明的是,本公开实施例仅是以“每当通过第一线程对图片作品执行的转码任务失败时,启动一个新的线程,通过新的线程对图片作品执行该转码任务”为例,对“若对图片作品执行的任一转码任务失败,对转码任务进行异步重试”进行示例性说明。
而在另一实施例中,在对转码任务进行重试时,只需保证重试的转码任务与服务器依次执行的多个转码任务之间是异步的即可,当多个转码任务失败需要重试时,重试的多个转码任务之间可以不异步。也即是,通过第一线程对图片作品依次执行多个转码任务,当通过第一线程对图片作品执行的任一转码任务失败时,启动第二线程,通过第二线程对图片作品执行该转码任务;当通过第一线程对图片作品执行的又一转码任务失败时,在通过第二线程执行完上一转码任务之后,通过第二线程执行该转码任务;以此类推。
需要说明的是,当对失败的转码任务进行异步重试时,有时会出现重新执行转码任务后,依然失败的情况。为了能够重试成功,在对转码任务进行异步重试时,可以重试多次。在一些实施例中,以第二线程为例,服务器启动第二线程,通过第二线程对图片作品执行转码任务,包括:通过第二线程,对所述图片作品执行转码任务;若通过第二线程对图片作品执行的该转码任务失败,则通过第二线程重复执行该转码任务,直至执行该转码任务成功,或者,直至达到预设重复次数。其中,预设重复次数可以是任一次数,本公开实施例对预设重复次数不做限定,可选地,该预设重复次数为经验值。
在步骤404中,服务器在通过任一线程得到转码后的图片作品之后,通过该线程将得到的转码后的图片作品发送到CDN,以使CDN对转码后的图片作品进行分发。
需要说明的是,本公开实施例中,CDN(Content Delivery Network,内容分发网络)接收到任一转码后的图片作品之后,即可对接收到的转码后的图片作品进行分发,而无需等接收到全部格式的图片作品后再进行分发。
在一些实施例中,第一线程在对图片作品执行完多个转码任务之后,才将执行成功的转码任务所生成的图片作品发送到CDN。在另一些实施例中,第一线程在对图片作品依次执行多个转码任务的过程中,一旦有转码任务执行成功,就将该转码任务所生成的图片作品发送到CDN。
在一些实施例中,新启动的线程,在对失败的转码任务重试成功之后,即可将该转码任务所生成的图片作品发送到CDN。
因此,服务器在通过任一线程得到转码后的图片作品之后,通过该线程将得到的转码后的图片作品发送到CDN,包括以下任一项:在通过第一线程对图片作品执行完多个转码任务之后,通过第一线程将执行成功的转码任务所生成的图片作品进行发布;在通过第一线程对图片作品依次执行多个转码任务的过程中,响应于任一转码任务执行成功,通过第一线程将该转码任务所生成的图片作品进行发布;在失败的转码任务重试成功之后,通过新启动的线程将该转码任务所生成的图片作品进行发布。
需要说明的是,本公开实施例仅是以将转码任务生成的图片作品发送到CDN,以使CDN对转码后的图片作品进行分发为例对“服务器对转码后的图片作品进行发布”进行示例性说明。当然,服务器还可以以其他方式对转码后的图片作品进行发布,本公开实施例对此不做限定。
在步骤405中,在服务器通过第一线程对图片作品依次执行多个转码任务之后,若多个转码任务均失败,则将作品发布请求携带的图片作品发送到CDN,以使CDN对图片作品进行分发。
为了避免多个转码任务均失败,无法得到转码后的图片作品,进而无法进行图片作品分发的情况,本公开实施例采用了使用原图进行兜底的策略,也即是,在服务器通过第一线程对图片作品依次执行多个转码任务之后,若多个转码任务均失败,则将作品发布请求携带的图片作品发送到CDN,以使CDN对图片作品进行分发。该方案进一步减轻了转码失败对作品发布的影响。
本公开实施例提供的一种图片转码方法,采用了转码自动降级和异步补偿机制,极大地降低了失败的转码任务对其他转码任务产生的影响,使得任一转码任务失败之后其他转码任务能够正常执行,提高了图片转码流程的可用性,只要有一个转码任务成功即可对该转码任务生成的图片作品进行分发,降低了图片转码失败对作品发布的影响。
本公开实施例还采用原图进行兜底,在全部转码任务失败之后,可以先发布原图,以避免转码失败阻塞发布流程。
本公开实施例以服务器对图片作品依次执行HEIF转码、WEBP转码和JPG转码为例对本公开实施例提供的图片转码方法进行示例性说明:
如图5和图6所示,图片转码方法包括以下步骤:
501、服务器接收终端发送的作品发布请求,该作品发布请求携带待发布的图片作品。
502、服务器启动第一线程,通过第一线程对图片作品进行HEIF转码,如果HEIF转码成功,则继续执行步骤503;如果HEIF转码失败,则继续执行步骤503和504。
503、服务器通过第一线程对图片作品进行WEBP转码。如果WEBP转码成功,则继续执行步骤505;如果WEBP转码失败,则继续执行步骤505和步骤506。
504、服务器启动第二线程,通过第二线程对图片作品进行HEIF转码,如果HEIF转码成功,则将转码后的图片作品发送至CDN;如果HEIF转码失败,则继续重试HEIF转码,直至HEIF转码成功或者达到预设重试次数。
505、服务器通过第一线程对图片作品进行JPG转码。如果JPG转码成功,则通过第一线程将成功转码得到的转码后的图片作品发送至CDN;如果JPG转码失败,则执行步骤507;如果JPG转码失败且HEIF转码和WEBP转码也失败,则执行步骤508。
其中,通过第一线程将成功转码得到的转码后的图片作品发送至CDN,包括:如果只有JPG转码成功,则将JPG转码得到的转码后的图片作品发送至CDN;如果JPG转码成功,WEBP转码也成功,则将JPG转码得到的转码后的图片作品和WEBP转码得到的转码后的图片作品一起发送至CDN,以此类推。
506、服务器启动第三线程,通过第三线程对图片作品进行WEBP转码,如果WEBP转码成功,则将转码后的图片作品发送至CDN;如果WEBP转码失败,则继续重试WEBP转码,直至WEBP转码成功或者达到预设重试次数。
507、服务器启动第四线程,通过第三线程对图片作品进行JPG转码,如果JPG转码成功,则将转码后的图片作品发送至CDN;如果JPG转码失败,则继续重试JPG转码,直至JPG转码成功或者达到预设重试次数。
508、服务器将待发布的图片作品直接发送到CDN。
图7是根据一示例性实施例示出的一种图片转码装置的结构框图。参照图7,该图片转码装置包括:
接收单元701,被配置为执行接收终端发送的作品发布请求,所述作品发布请求携带待发布的图片作品;
第一转码单元702,被配置为执行按照转码降级的顺序,对所述图片作品依次执行多个转码任务,所述多个转码任务用于将所述图片作品转码成不同的格式;
其中,若对所述图片作品执行的任一转码任务失败,则所述第一转码单元702被配置为执行继续执行所述转码任务的下一转码任务,第二转码单元703被配置为执行对所述转码任务进行异步重试;
发布单元704,被配置为执行在得到任一转码后的图片作品后,对所述转码后的图片作品进行发布。
在一些实施例中,所述第一转码单元702,被配置为执行通过第一线程,对所述图片作品依次执行所述多个转码任务;
若通过所述第一线程对所述图片作品执行的任一转码任务失败,则所述第一转码单元702被配置为执行通过所述第一线程继续执行所述转码任务的下一转码任务,所述第二转码单元703被配置为执行启动第二线程,通过所述第二线程对所述图片作品执行所述转码任务;
其中,所述第一线程和所述第二线程并行运行。
在一些实施例中,每当通过所述第一线程对所述图片作品执行的转码任务失败时,所述第二转码单元703被配置为执行启动一个新的线程,通过所述新的线程对所述图片作品执行所述转码任务。
在一些实施例中,所述第二转码单元703被配置为执行通过所述第二线程,对所述图片作品执行所述转码任务;若通过所述第二线程对所述图片作品执行的所述转码任务失败,则通过所述第二线程重复执行所述转码任务,直至执行所述转码任务成功,或者,直至达到预设重复次数。
在一些实施例中,所述发布单元704,被配置为执行以下至少一项:
在对所述图片作品执行完所述多个转码任务之后,将执行成功的转码任务所生成的图片作品进行发布;
在对所述图片作品依次执行所述多个转码任务的过程中,响应于任一转码任务执行成功,将所述转码任务所生成的图片作品进行发布;
在失败的转码任务重试成功之后,将所述转码任务所生成的图片作品进行发布。
在一些实施例中,所述发布单元704,还被配置为执行在对所述图片作品依次执行所述多个转码任务之后,若所述多个转码任务均失败,则对所述作品发布请求携带的图片作品进行发布。
在一些实施例中,所述第一转码单元702,被配置为执行按照压缩比从高到低的顺序,对所述图片作品依次执行所述多个转码任务。
关于上述实施例中的图片转码装置,其中每个单元执行操作的具体方式已经在有关方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种服务器的结构框图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central ProcessingUnits,CPU)801和一个或一个以上的存储器802,其中,该存储器802中存储有至少一条计算机程序,该至少一条计算机程序由该处理器801加载并执行以实现上述各个方法实施例提供的图片转码方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由终端的处理器执行以完成上述方法实施例中的图片转码方法。在一些实施例中,计算机可读存储介质可以是ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的图片转码方法。
在一些实施例中,本公开实施例所涉及的计算机程序可被部署在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行,分布在多个地点且通过通信网络互连的多个电子设备可以组成区块链系统。该电子设备可以提供为终端。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由上面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (11)

1.一种图片转码方法,其特征在于,所述图片转码方法包括:
接收终端发送的作品发布请求,所述作品发布请求携带待发布的图片作品;
按照转码降级的顺序,对所述图片作品依次执行多个转码任务,所述多个转码任务用于将所述图片作品转码成不同的格式;
其中,若对所述图片作品执行的任一转码任务失败,则继续执行所述转码任务的下一转码任务,并对所述转码任务进行异步重试;
在得到任一转码后的图片作品后,对所述转码后的图片作品进行发布。
2.根据权利要求1所述的图片转码方法,其特征在于,所述对所述图片作品依次执行多个转码任务,包括:
通过第一线程,对所述图片作品依次执行所述多个转码任务;
所述若对所述图片作品执行的任一转码任务失败,则继续执行所述转码任务的下一转码任务,并对所述转码任务进行异步重试,包括:
若通过所述第一线程对所述图片作品执行的任一转码任务失败,则通过所述第一线程继续执行所述转码任务的下一转码任务,并启动第二线程,通过所述第二线程对所述图片作品执行所述转码任务;
其中,所述第一线程和所述第二线程并行运行。
3.根据权利要求2所述的方法,其特征在于,若对所述图片作品执行的任一转码任务失败,对所述转码任务进行异步重试,包括:
每当通过所述第一线程对所述图片作品执行的转码任务失败时,启动一个新的线程,通过所述新的线程对所述图片作品执行所述转码任务。
4.根据权利要求2所述的图片转码方法,其特征在于,所述启动第二线程,通过所述第二线程对所述图片作品执行所述转码任务,包括:
通过所述第二线程,对所述图片作品执行所述转码任务;
若通过所述第二线程对所述图片作品执行的所述转码任务失败,则通过所述第二线程重复执行所述转码任务,直至执行所述转码任务成功,或者,直至达到预设重复次数。
5.根据权利要求1所述的图片转码方法,其特征在于,所述在得到任一转码后的图片作品后,对所述转码后的图片作品进行发布,包括以下任一项:
在对所述图片作品执行完所述多个转码任务之后,将执行成功的转码任务所生成的图片作品进行发布;
在对所述图片作品依次执行所述多个转码任务的过程中,响应于任一转码任务执行成功,将所述转码任务所生成的图片作品进行发布;
在失败的转码任务重试成功之后,将所述转码任务所生成的图片作品进行发布。
6.根据权利要求1所述的图片转码方法,其特征在于,所述图片转码方法还包括:
在对所述图片作品依次执行所述多个转码任务之后,若所述多个转码任务均失败,则对所述作品发布请求携带的图片作品进行发布。
7.根据权利要求1所述的图片转码方法,其特征在于,所述按照转码降级的顺序,对所述图片作品依次执行多个转码任务,包括:
按照压缩比从高到低的顺序,对所述图片作品依次执行所述多个转码任务。
8.一种图片转码装置,其特征在于,所述图片转码装置包括:
接收单元,被配置为执行接收终端发送的作品发布请求,所述作品发布请求携带待发布的图片作品;
第一转码单元,被配置为执行按照转码降级的顺序,对所述图片作品依次执行多个转码任务,所述多个转码任务用于将所述图片作品转码成不同的格式;
其中,若对所述图片作品执行的任一转码任务失败,则所述第一转码单元被配置为执行继续执行所述转码任务的下一转码任务,第二转码单元被配置为执行对所述转码任务进行异步重试;
发布单元,被配置为执行在得到任一转码后的图片作品后,对所述转码后的图片作品进行发布。
9.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的图片转码方法。
10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如权利要求1至7中任一项所述的图片转码方法。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的图片转码方法。
CN202311228055.3A 2023-09-21 2023-09-21 图片转码方法、装置、服务器及存储介质 Pending CN117336530A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311228055.3A CN117336530A (zh) 2023-09-21 2023-09-21 图片转码方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311228055.3A CN117336530A (zh) 2023-09-21 2023-09-21 图片转码方法、装置、服务器及存储介质

Publications (1)

Publication Number Publication Date
CN117336530A true CN117336530A (zh) 2024-01-02

Family

ID=89278237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311228055.3A Pending CN117336530A (zh) 2023-09-21 2023-09-21 图片转码方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN117336530A (zh)

Similar Documents

Publication Publication Date Title
US7725557B2 (en) Client-side caching of streaming media content
CN104243998B (zh) 一种数据处理方法、装置及相关服务器
US20140115050A1 (en) Method And System For Transcoding
CN108810657B (zh) 一种设置视频封面的方法和系统
EP2493191B1 (en) Method, device and system for realizing hierarchically requesting content in http streaming system
KR20060110267A (ko) 신 클라이언트에서 그래픽 및 미디어 디스플레이를생성하기 위한 장치 및 방법
CN112839238B (zh) 投屏播放方法、装置和存储介质
US20220060532A1 (en) Method for transmitting resources and electronic device
US8582664B2 (en) Method and device for creating a video sequence representative of a digital video sequence and associated methods and devices for transmitting and receiving video data
CN112243136B (zh) 内容播放方法、视频存储方法和设备
CN111090818B (zh) 资源管理方法、资源管理系统、服务器及计算机存储介质
US8774599B2 (en) Method for transcoding and playing back video files based on grid technology in devices having limited computing power
CN117336530A (zh) 图片转码方法、装置、服务器及存储介质
CN109088907B (zh) 文件传递方法及其设备
CN111939562B (zh) 共享存储方法、电子设备及计算机可读存储介质
WO2022028189A1 (zh) 投屏方法及装置、电子设备和计算机可读存储介质
CN115022725A (zh) 一种视频播放方法和装置
WO2017071524A1 (zh) 多媒体资源的发布方法及装置
CN114520832B (zh) 一种数据流处理方法、装置、设备及计算机存储介质
CN114900485B (zh) 访问网络文件存储的方法、电子设备及系统
CN115914670B (zh) 直播回放处理方法、装置及存储介质
CN112751886B (zh) 一种转码方法、系统、传输设备及存储介质
KR102007669B1 (ko) 방송 수신기 및 이의 운용 방법
KR102123070B1 (ko) Vod 컨텐츠 제공 서버 장치 및 이의 운용 방법
CN114827096A (zh) Rtmp连接迁移方法、装置、设备及可读存储介质

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