CN115278307B - 一种视频播放方法、装置、设备和介质 - Google Patents

一种视频播放方法、装置、设备和介质 Download PDF

Info

Publication number
CN115278307B
CN115278307B CN202210894109.9A CN202210894109A CN115278307B CN 115278307 B CN115278307 B CN 115278307B CN 202210894109 A CN202210894109 A CN 202210894109A CN 115278307 B CN115278307 B CN 115278307B
Authority
CN
China
Prior art keywords
frame
identification information
paths
original videos
videos
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
Application number
CN202210894109.9A
Other languages
English (en)
Other versions
CN115278307A (zh
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.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud 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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202210894109.9A priority Critical patent/CN115278307B/zh
Publication of CN115278307A publication Critical patent/CN115278307A/zh
Application granted granted Critical
Publication of CN115278307B publication Critical patent/CN115278307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种视频播放方法、装置、设备和介质,由于该方法中对获取的至少两路原始视频解码得到每一帧图像、以及每一帧图像对应的标识信息,创建由每一帧图像对应的标识信息组成的公共帧轴并显示,接收到暂停指令,由于暂停指令携带有用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,从而可以显示第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放,实现了以帧图像为粒度暂停,满足了用户更加细粒度的帧图像主观质量对比需求。

Description

一种视频播放方法、装置、设备和介质
技术领域
本发明涉及视频平台技术领域,尤其涉及一种视频播放方法、装置、设备和介质。
背景技术
在视频图像主观质量对比场景会进行视频对比播放,现有的在网页(Web)端的视频对比播放方法中,在网页上的可实现多路视频同步播放的单一播放器中,是通过浏览器接口接收到至少两路原始视频,其中至少两路原始视频中的每一路原始视频的画面内容、长、宽等信息一致,但画质或压缩算法等不同,对两路原始视频进行解封装和解码,若至少两路原始视频为点播视频,则根据点播视频的总时长,采用均匀刻度划分总时长,得到公共时间轴;若至少两路原始视频为直播视频,则创建无限延伸的时间轴,并采用均匀刻度划分时间轴,得到无限延伸的公共时间轴,并基于公共时间轴对帧图像进行播放,在对视频进行暂停时,若均匀刻度为秒,则可以在网页的单一播放器上同时显示确定秒的某一帧的至少两路帧图像,但无法满足用户要求的暂停在确定帧的至少两路帧图像上的需求。
因此,现有的视频对应播放方法中只能做到以时间为粒度暂停,导致无法满足暂停在用户想对比的某一帧图像的需求。如何实现以帧图像为粒度暂停,满足用户更加细粒度的帧图像主观质量对比需求就成为亟待解决的技术问题。
发明内容
本发明提供了一种视频播放方法、装置、设备和介质,用以解决现有技术中只能做到以时间为粒度暂停,导致无法满足暂停在用户想对比的某一帧图像的需求的问题。
本发明提供了一种视频播放方法,所述方法包括:
获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息,其中所述标识信息包含帧时刻和帧编号中的至少一种;
创建由所述每一帧图像对应的标识信息组成的公共帧轴并显示;
若接收到暂停指令,其中所述暂停指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,则显示所述第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放。
进一步地,所述方法还包括:
若接收到播放指令,其中所述播放指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第二目标标识信息,则基于所述公共帧轴,获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,并按照预设播放速率进行播放。
进一步地,所述获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像包括:
获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,将所述至少两路原始视频对应的帧图像分别加入至少两路帧缓存队列中;
所述按照预设播放速率进行播放包括:
按照预设播放速率将所述至少两路帧缓存队列中队首的帧图像同时进行播放。
进一步地,所述方法还包括:
若接收到对播放速率的修改指令,其中所述修改指令中携带有修改后的播放速率,基于所述修改后的播放速率对获取的帧图像进行播放。
进一步地,若所述至少两路原始视频为直播视频,所述获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息包括:
实时获取所述至少两路原始视频并进行缓存,若缓存视频的内存达到预设内存阈值,则按照预设频率更新缓存视频,并对所述至少两路原始视频的每次更新的缓存视频进行解码,得到所述至少两路原始视频的每次更新的缓存视频中的每一帧图像、所述每一帧图像对应的标识信息;
所述创建由所述每一帧图像对应的标识信息组成的公共帧轴包括:
创建由所述至少两路原始视频的每次更新的缓存视频中的每一帧图像对应的标识信息组成的公共帧轴。
相应地,本发明提供了一种视频播放装置,所述装置包括:
获取模块,用于获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息,其中所述标识信息包含帧时刻和帧编号中的至少一种;
创建模块,用于创建由所述每一帧图像对应的标识信息组成的公共帧轴并显示;
控制模块,用于若接收到暂停指令,其中所述暂停指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,则显示所述第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放。
进一步地,所述控制模块,还用于若接收到播放指令,其中所述播放指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第二目标标识信息,则基于所述公共帧轴,获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,并按照预设播放速率进行播放。
进一步地,所述控制模块,具体用于获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,将所述至少两路原始视频对应的帧图像分别加入至少两路帧缓存队列中;按照预设播放速率将所述至少两路帧缓存队列中队首的帧图像同时进行播放。
进一步地,所述控制模块,还用于若接收到对播放速率的修改指令,其中所述修改指令中携带有修改后的播放速率,基于所述修改后的播放速率对获取的帧图像进行播放。
进一步地,若所述至少两路原始视频为直播视频,所述获取模块,具体用于实时获取所述至少两路原始视频并进行缓存,若缓存视频的内存达到预设内存阈值,则按照预设频率更新缓存视频,并对所述至少两路原始视频的每次更新的缓存视频进行解码,得到所述至少两路原始视频的每次更新的缓存视频中的每一帧图像、所述每一帧图像对应的标识信息;
所述创建模块,具体用于创建由所述至少两路原始视频的每次更新的缓存视频中的每一帧图像对应的标识信息组成的公共帧轴。
相应地,本发明提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行时实现上述视频播放方法中任一所述方法的步骤。
相应地,本发明提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述视频播放方法中任一所述方法的步骤。
本发明提供了一种视频播放方法、装置、设备和介质,由于该方法中对获取的至少两路原始视频解码得到每一帧图像、以及每一帧图像对应的标识信息,创建由每一帧图像对应的标识信息组成的公共帧轴并显示,接收到暂停指令,由于暂停指令携带有用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,从而可以显示第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放,实现了以帧图像为粒度暂停,满足了用户更加细粒度的帧图像主观质量对比需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频播放方法的过程示意图;
图2为本发明实施例提供的一种将FFmpeg库编译运行在wasm浏览器的示意图;
图3为本发明实施例提供的一种视频播放方法的流程示意图;
图4为本发明实施例提供的网络抽象层单元的示意图;
图5为本发明实施例提供的一种NAL header的结构示意图;
图6为本发明实施例提供的一段视频裸流示意图;
图7为本发明实施例提供的一种视频播放装置的结构示意图;
图8为本发明实施例提供的另一种视频播放装置的架构示意图;
图9为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
视频的帧图像分为帧内编码帧(Intra-coded picture,I)帧、预测编码图像帧(Predictive-coded picture,P)帧和双向预测编码图像帧(Bi-directionally predictedpicture,B)帧。
I帧也称为关键帧,包含一幅完整的图像信息,属于帧内编码图像,不含运动矢量,在解码时不需要参考其他帧图像。因此在I帧图像处可以切换频道,而不会导致图像丢失或无法解码。I帧图像用于阻止误差的累积和扩散。在闭合式画面组(Group of Pictures,GOP)中,每个GOP的第一个帧一定是I帧,且当前GOP的数据不会参考前后GOP的数据。
P帧是帧间编码帧,利用之前的I帧或P帧进行预测编码。
B帧是帧间编码帧,利用之前和/或之后的I帧或P帧进行双向预测编码,B帧不可以作为参考帧。
为了实现以帧图像为粒度暂停,满足用户更加细粒度的帧图像主观质量对比需求,本发明实施例提供了一种视频播放方法、装置、设备和介质。
实施例1:
图1为本发明实施例提供的一种视频播放方法的过程示意图,该过程包括以下步骤:
S101:获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息,其中所述标识信息包含帧时刻和帧编号中的至少一种。
为了实现以帧图像为粒度暂停,本发明实施例提供的一种视频播放方法应用于电子设备,其中该电子设备可以是主机、平板电脑、智能手机等智能终端,也可以是服务器,其中该服务器可以是本地服务器,也可以是云端服务器。
该电子设备获取到至少两路原始视频,其中至少两路原始视频可以是支持视频压缩编码标准(h.264)的视频,也可以是支持高效率视频编码标准(h.265)的视频;至少两路原始视频可以是采用流媒体格式(Flash Video,flv)封装格式的视频,可以是采用HTTP直播流技术(HTTP Live Streaming,HLS)封装格式的视频,也可以是采用多媒体应用标准(Moving Picture Expert Group-4,mp4)封装格式的视频;本发明实施例对比不做限制,至少两路原始视频可以是该电子设备预先保存的视频,与该电子设备连接的其他设备发送的点播视频或直播视频,为了满足用户的主观质量对比需求,至少两路原始视频中的每一路原始视频的画面内容、长、宽等信息一致,但画质或压缩算法等不同,因此会导致画面质量不同。
具体的,在本发明实施例中,该电子设备首先接收用户预先采用C语言编写的开源计算机程序(Fast Forward Mpeg,FFmpeg)库,其中FFmpeg库用于记录、转换数字音频、视频,并能将其转化为流。该电子设备通过编译器(Emscripten)工具将FFmpeg库编译成浏览器可识别的静态库,并运行在wasm浏览器和/或libffmpeg_decoder.js浏览器。
图2为本发明实施例提供的一种将FFmpeg库编译运行在wasm浏览器的示意图,如图2所示,该电子设备采用Emscripten编译成静态库,静态库中包括libavfomat.a文件、libavcodec.a文件、libavutil.a文件和libswscale.a文件,将静态库中的文件经过解码器(decoder)中的heap_cycle_cpp和decoder_cpp,得到可以在wasm浏览器运行的libffmpeg_decoder.js文件和ibffmpeg_decoder.wasm文件。
该电子设备通过浏览器接口(Application Program Interface,API)获取到两路原始视频,其中该浏览器接口可以是流接口(Stream API)、也可以是接口(fetch),本发明实施例对比不做限制。
该电子设备对获取到的至少两路原始视频进行解码,得到至少两路原始视频中的每一帧图像、每一帧图像对应的标识信息,其中标识信息包括每一帧图像的帧时刻和帧编号中的至少一种。
具体的,该电子设备将获取到的至少两路原始视频放到自定义缓冲区,并开启子线程(Web Worker)进行解封装和解码,该电子设备调用Ffmpeg中的解封装方法对至少两路原始视频首先进行解封装。
例如以FLV封装格式的至少两路原始视频为例,通过解封装得到的FLV Header头部分可以获取到至少两路原始视频的媒体信息(mediadata),其中媒体信息包括至少两路原始视频中的帧图像的宽、高、用户配置文件(profile)等;根据获取到的至少两路原始视频的媒体信息进行播放器的初始化。
该电子设备调用Ffmpeg中的解码方法对解封装后的至少两路原始视频进行解码,通过解码获取到至少两路原始视频中的每一帧图像和每一帧图像对应的标识信息。例如以至少两路原始视频是支持h.264视频编码格式的视频为例,该电子设备解码至少两路视频得到每一帧图像、每一帧图像对应的标识信息。
其中标识信息包含帧时刻和帧编号中的至少一种,帧时刻是在解码得到的每一帧图像的显示时间戳(Presentation Time Stamp,PTS)中获取的,该显示时间戳由于使播放器确定在何时显示帧图像。
S102:创建由所述每一帧图像对应的标识信息组成的公共帧轴并显示。
根据获取到的每一帧图像的标识信息,该电子设备将每一帧图像的标识信息按照每一帧图像的显示顺序组成功能帧轴,并将公共帧轴进行显示。
具体的,若至少两路原始视频为点播视频,则公共帧轴中包含的每一帧图像的标识信息的数量是有限的;若至少两路原始视频为直播视频,则公共帧轴中包含的每一帧图像的标识信息的数量是无限延伸的。
S103:若接收到暂停指令,其中所述暂停指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,则显示所述第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放。
该电子设备若接收到暂停指令,该电子设备具体是通过自身的显示屏接收到用户在显示的公共帧轴上的标识信息中选择的第一目标标识信息的暂停指令,则根据暂停指令中携带的第一目标标识信息,显示第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放下一帧图像。
由于在本发明实施例中,该方法对获取的至少两路原始视频解码得到每一帧图像、以及每一帧图像对应的标识信息,创建由每一帧图像对应的标识信息组成的公共帧轴并显示,接收到暂停指令,由于暂停指令携带有用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,从而可以显示第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放,实现了以帧图像为粒度暂停,满足了用户更加细粒度的帧图像主观质量对比需求。
实施例2:
为了实现对至少两路原始视频的播放控制,在上述实施例的基础上,在本发明实施例中,所述方法还包括:
若接收到播放指令,其中所述播放指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第二目标标识信息,则基于所述公共帧轴,获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,并按照预设播放速率进行播放。
为了实现对至少两路原始视频的播放控制,在本发明实施例中,该电子设备若接收到用户在显示的公共帧轴上的标识信息中选择的第二目标标识信息的播放指令,则基于生成的公共帧轴,该电子设备确定第二目标标识信息以及第二目标标识信息之后的标识信息,获取至少两路原始视频中第二目标标识信息以及第二目标标识信息之后的标识信息对应的帧图像,并将获取的帧图像按照预设播放速率进行播放。
其中预设播放速率是由用户预先设置的,包括1倍速(1x)、0.5倍速(0.5x)、1.5倍速(1.5x)以及2倍速(2x),其中,默认播放速率为1倍速。
实施例3:
为了实现对至少两路原始视频的播放控制,在上述各实施例的基础上,在本发明实施例中,所述获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像包括:
获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,将所述至少两路原始视频对应的帧图像分别加入至少两路帧缓存队列中;
所述按照预设播放速率进行播放包括:
按照预设播放速率将所述至少两路帧缓存队列中队首的帧图像同时进行播放。
为了实现对至少两路原始视频的播放控制,该电子设备获取至少两路原始视频中第二目标标识信息以及第二目标标识信息之后的标识信息分别对应的帧图像,将每路原始视频对应的帧图像分别加入到每路帧缓存队列中,根据至少两路帧缓存队列,按照预设播放速率将至少两路帧缓存队列中队首的帧图像同时进行播放,并对帧缓存队列进行更新保证每路帧缓存队列中始终缓存设定数量的帧图像。
为了实现对播放速率的调整,在本发明实施例中,所述方法还包括:
若接收到对播放速率的修改指令,其中所述修改指令中携带有修改后的播放速率,基于所述修改后的播放速率对获取的帧图像进行播放。
该电子设备若接收到对播放速率的修改指令,具体该电子设备通过显示屏幕接收到对显示的每个预设速率的按压操作、点击操作、滑动操作等,确定接收到对播放速率的修改指令,该修改指令中携带有用户选择的修改后的播放速率,并基于修改后的播放速率对获取到帧图像进行播放。
实施例4:
在至少两路原始视频为直播视频时,为了实现对至少两路原始视频的播放控制,在上述各实施例的基础上,在本发明实施例中,若所述至少两路原始视频为直播视频,所述获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息包括:
实时获取所述至少两路原始视频并进行缓存,若缓存视频的内存达到预设内存阈值,则按照预设频率更新缓存视频,并对所述至少两路原始视频的每次更新的缓存视频进行解码,得到所述至少两路原始视频的每次更新的缓存视频中的每一帧图像、所述每一帧图像对应的标识信息;
所述创建由所述每一帧图像对应的标识信息组成的公共帧轴包括:
创建由所述至少两路原始视频的每次更新的缓存视频中的每一帧图像对应的标识信息组成的公共帧轴。
在至少两路原始视频为直播视频时,该电子设备实时获取到至少两路原始视频并进行缓存,具体是获取到其他设备实时发送的至少两路原始视频,并对获取到的原始视频进行缓存。
根据至少两路原始视频缓存的缓存视频的内存,判断内存是否达到预设内存阈值,若内存未达到预设内存阈值,则继续进行缓存,若内存达到预设内存阈值,则按照预设频率更新缓存视频,并对至少两路原始视频的每次更新的缓存视频进行解码,得到每次更新的缓存视频中的每一帧图像、每一帧图像对应的标识信息。
根据每次更新的缓存视频的每一帧图像对应的标识信息,创建由每次更新的缓存视频的每一帧图像对应的标识信息组成的公共帧轴,若该电子设备始终获取到直播视频,则始终创建公共帧轴。
实施例5:
下面通过一个具体的实施例对本申请的一种视频播放方法进行说明,图3为本发明实施例提供的一种视频播放方法的流程示意图,如图3所示,该电子设备的主线程获取到两路原始视频,将原始视频进行缓存,并将缓存的两路原始视频的数据放入到Web Worker子线程中的内存环中,对两路原始视频首先进行解封装,获取两路原始视频的mediadata信息,对解封装后的两路原始视频进行解码,Web Worker子线程将解码得到的两路原始视频的每一帧图像分别加入主线程的两路帧缓存队列中,对帧缓存队列进行循环解码,保证帧缓存队列中一直缓存10帧rgb帧图像,主线程的画布(canvas)通过定时器不断获取两路原始视频的帧图像并进行渲染后显示;该电子设备循环上述操作直至fetch接口返回获取的原始视频已结束。
其中该电子设备解码得到每一帧数据就是一个网络抽象层单元(NetworkAbstract Layer Unit,NALU),图4为本发明实施例提供的网络抽象层单元的示意图,如图4所示,NALU是由网络抽象层头数据(NAL header)和原始字节序列载荷(Raw Byte SequencePayload,RBSP)数据组成的;图5为本发明实施例提供的一种NAL header的结构示意图,如图5所示,该NAL header中包含1bit的forbidden_zero_bit、2bits的nal_ref_idc和5bits的nal_unit_type。
在实际的H.264数据帧中,帧前面带有00 00 00 01或00 00 01分隔符,一般来说编码器编出的首帧数据为图像参数集(picture parameter set,PPS)与序列参数集(Sequence Paramater Set,SPS),接着为I帧;图6为本发明实施例提供的一段视频裸流示意图,如图6所示,00 00 00 01分割之后的下一个字节就是NALU header,将其转为二进制数据后,解读顺序为从左往右算,其中第4至8为是nal单元类型,如上面00 00 00 01后有67、68以及65。
表1为本发明实施例提供的一种NAL type种类。
表1
如表1所示,nal_unit_type为0时标识NAL类型为未使用;nal_unit_type为1时标识NAL类型为非IDR图像中不采用数据划分的片断;nal_unit_type为2时标识NAL类型为非IDR图像中A类数据划分片断;nal_unit_type为3时标识NAL类型为非IDR图像中B类数据划分片断;nal_unit_type为4时标识NAL类型为非IDR图像中C类数据划分片断;nal_unit_type为5时标识NAL类型为IDR图像的片;nal_unit_type为6时标识NAL类型为补充增强信息单元(SEI);nal_unit_type为7时标识NAL类型为序列参数集;nal_unit_type为8时标识NAL类型为图像参数集;nal_unit_type为9时标识NAL类型为分界符;nal_unit_type为10时标识NAL类型为序列结束;nal_unit_type为11时标识NAL类型为码流结束;nal_unit_type为12时标识NAL类型为填充;nal_unit_type为13..23时标识NAL类型为保留;nal_unit_type为24..31时标识NAL类型为不保留(RTP打包时会用到)。
图6中的67的二进制码为:0110 0111,4至8为00111转为十进制为7,参考表1可知7对应序列参数集;68的二进制码为:0110 1000,4至8为01000转为十进制为8;参考表1可知8对应图像参数集;65的二进制码为:0110 0101,4至8为00101,转为十进制为5,参考表1可知5对应帧图像中的I帧。
在本发明实施例中,00 00 00 01还可能会有41,41的二进制码为:01000001,4至8为00001转为十进制为1,参考表1可知1对应这段码流是非IDR图像中不采用数据划分的片断,在基线(baseline)的档次中就是P帧,因为baseline没有B帧。
实施例6:
图7为本发明实施例提供的一种视频播放装置的结构示意图,如图7所示,该装置包括:
获取模块701,用于获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息,其中所述标识信息包含帧时刻和帧编号中的至少一种;
创建模块702,用于创建由所述每一帧图像对应的标识信息组成的公共帧轴并显示;
控制模块703,用于若接收到暂停指令,其中所述暂停指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,则显示所述第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放。
进一步地,所述控制模块703,还用于若接收到播放指令,其中所述播放指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第二目标标识信息,则基于所述公共帧轴,获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,并按照预设播放速率进行播放。
进一步地,所述控制模块703,具体用于获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,将所述至少两路原始视频对应的帧图像分别加入至少两路帧缓存队列中;按照预设播放速率将所述至少两路帧缓存队列中队首的帧图像同时进行播放。
进一步地,所述控制模块703,还用于若接收到对播放速率的修改指令,其中所述修改指令中携带有修改后的播放速率,基于所述修改后的播放速率对获取的帧图像进行播放。
进一步地,若所述至少两路原始视频为直播视频,所述获取模块701,具体用于实时获取所述至少两路原始视频并进行缓存,若缓存视频的内存达到预设内存阈值,则按照预设频率更新缓存视频,并对所述至少两路原始视频的每次更新的缓存视频进行解码,得到所述至少两路原始视频的每次更新的缓存视频中的每一帧图像、所述每一帧图像对应的标识信息;
所述创建模块702,具体用于创建由所述至少两路原始视频的每次更新的缓存视频中的每一帧图像对应的标识信息组成的公共帧轴。
图8为本发明实施例提供的另一种视频播放装置的架构示意图,如图8所示,视频播放装置的用户界面(User Interface,UI)层支持的控制功能包括:视频帧的播放和暂停、播放速率的切换(0.5x、1x、1.5x、2x)、进度条、全屏、上一帧、下一帧,其中进度条相当于本发明实施例中的公共帧轴;视频播放装置支持的封装格式包括flv、HLS和mp4,视频播放装置的视频编码格式包括数字音视频编解码标准(Audio Video coding Standard,AVS)、第2代数字音视频编解码标准(Audio Video coding Standard 2,AVS2)、第3代数字音视频编解码标准(Audio Video coding Standard 3,AVS3)、h.264和h.265。
实施例7:
图9为本发明实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本发明实施例还提供了一种电子设备,如图9所示,包括:处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。
所述存储器903中存储有计算机程序,当所述程序被所述处理器901执行时,使得所述处理器901执行如下步骤:
获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息,其中所述标识信息包含帧时刻和帧编号中的至少一种;
创建由所述每一帧图像对应的标识信息组成的公共帧轴并显示;
若接收到暂停指令,其中所述暂停指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,则显示所述第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放。
进一步地,所述处理器901还用于若接收到播放指令,其中所述播放指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第二目标标识信息,则基于所述公共帧轴,获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,并按照预设播放速率进行播放。
进一步地,所述处理器901具体用于所述获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像包括:
获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,将所述至少两路原始视频对应的帧图像分别加入至少两路帧缓存队列中;
所述按照预设播放速率进行播放包括:
按照预设播放速率将所述至少两路帧缓存队列中队首的帧图像同时进行播放。
进一步地,所述处理器901还用于若接收到对播放速率的修改指令,其中所述修改指令中携带有修改后的播放速率,基于所述修改后的播放速率对获取的帧图像进行播放。
进一步地,所述处理器901具体用于若所述至少两路原始视频为直播视频,所述获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息包括:
实时获取所述至少两路原始视频并进行缓存,若缓存视频的内存达到预设内存阈值,则按照预设频率更新缓存视频,并对所述至少两路原始视频的每次更新的缓存视频进行解码,得到所述至少两路原始视频的每次更新的缓存视频中的每一帧图像、所述每一帧图像对应的标识信息;
所述创建由所述每一帧图像对应的标识信息组成的公共帧轴包括:
创建由所述至少两路原始视频的每次更新的缓存视频中的每一帧图像对应的标识信息组成的公共帧轴。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口902用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
实施例8:
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息,其中所述标识信息包含帧时刻和帧编号中的至少一种;
创建由所述每一帧图像对应的标识信息组成的公共帧轴并显示;
若接收到暂停指令,其中所述暂停指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,则显示所述第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放。
进一步地,所述方法还包括:
若接收到播放指令,其中所述播放指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第二目标标识信息,则基于所述公共帧轴,获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,并按照预设播放速率进行播放。
进一步地,所述获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像包括:
获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,将所述至少两路原始视频对应的帧图像分别加入至少两路帧缓存队列中;
所述按照预设播放速率进行播放包括:
按照预设播放速率将所述至少两路帧缓存队列中队首的帧图像同时进行播放。
进一步地,所述方法还包括:
若接收到对播放速率的修改指令,其中所述修改指令中携带有修改后的播放速率,基于所述修改后的播放速率对获取的帧图像进行播放。
进一步地,若所述至少两路原始视频为直播视频,所述获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息包括:
实时获取所述至少两路原始视频并进行缓存,若缓存视频的内存达到预设内存阈值,则按照预设频率更新缓存视频,并对所述至少两路原始视频的每次更新的缓存视频进行解码,得到所述至少两路原始视频的每次更新的缓存视频中的每一帧图像、所述每一帧图像对应的标识信息;
所述创建由所述每一帧图像对应的标识信息组成的公共帧轴包括:
创建由所述至少两路原始视频的每次更新的缓存视频中的每一帧图像对应的标识信息组成的公共帧轴。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种视频播放方法,其特征在于,所述方法包括:
获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息,其中所述标识信息包含帧时刻和帧编号中的至少一种;
创建由所述每一帧图像对应的标识信息组成的公共帧轴并显示;
若接收到暂停指令,其中所述暂停指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,则显示所述第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到播放指令,其中所述播放指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第二目标标识信息,则基于所述公共帧轴,获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,并按照预设播放速率进行播放。
3.根据权利要求2所述的方法,其特征在于,所述获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像包括:
获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,将所述至少两路原始视频对应的帧图像分别加入至少两路帧缓存队列中;
所述按照预设播放速率进行播放包括:
按照预设播放速率将所述至少两路帧缓存队列中队首的帧图像同时进行播放。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若接收到对播放速率的修改指令,其中所述修改指令中携带有修改后的播放速率,基于所述修改后的播放速率对获取的帧图像进行播放。
5.根据权利要求1所述的方法,其特征在于,若所述至少两路原始视频为直播视频,所述获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息包括:
实时获取所述至少两路原始视频并进行缓存,若缓存视频的内存达到预设内存阈值,则按照预设频率更新缓存视频,并对所述至少两路原始视频的每次更新的缓存视频进行解码,得到所述至少两路原始视频的每次更新的缓存视频中的每一帧图像、所述每一帧图像对应的标识信息;
所述创建由所述每一帧图像对应的标识信息组成的公共帧轴包括:
创建由所述至少两路原始视频的每次更新的缓存视频中的每一帧图像对应的标识信息组成的公共帧轴。
6.一种视频播放装置,其特征在于,所述装置包括:
获取模块,用于获取至少两路原始视频并进行解码,得到所述至少两路原始视频中的每一帧图像、所述每一帧图像对应的标识信息,其中所述标识信息包含帧时刻和帧编号中的至少一种;
创建模块,用于创建由所述每一帧图像对应的标识信息组成的公共帧轴并显示;
控制模块,用于若接收到暂停指令,其中所述暂停指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第一目标标识信息,则显示所述第一目标标识信息对应的至少两路原始视频中的目标帧图像并暂停播放。
7.根据权利要求6所述的装置,其特征在于,所述控制模块,还用于若接收到播放指令,其中所述播放指令中携带用户在显示的所述公共帧轴上的标识信息中选择的第二目标标识信息,则基于所述公共帧轴,获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,并按照预设播放速率进行播放。
8.根据权利要求7所述的装置,其特征在于,所述控制模块,具体用于获取所述至少两路原始视频中所述第二目标标识信息及之后的帧图像,将所述至少两路原始视频对应的帧图像分别加入至少两路帧缓存队列中;按照预设播放速率将所述至少两路帧缓存队列中队首的帧图像同时进行播放。
9.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1-5任一项所述视频播放方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行权利要求1-5任一项所述视频播放方法的步骤。
CN202210894109.9A 2022-07-27 2022-07-27 一种视频播放方法、装置、设备和介质 Active CN115278307B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210894109.9A CN115278307B (zh) 2022-07-27 2022-07-27 一种视频播放方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210894109.9A CN115278307B (zh) 2022-07-27 2022-07-27 一种视频播放方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN115278307A CN115278307A (zh) 2022-11-01
CN115278307B true CN115278307B (zh) 2023-08-04

Family

ID=83771692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210894109.9A Active CN115278307B (zh) 2022-07-27 2022-07-27 一种视频播放方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN115278307B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115942000B (zh) * 2022-11-08 2023-11-21 北京力控元通科技有限公司 H.264格式的视频流转码方法及装置、设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008270908A (ja) * 2007-04-16 2008-11-06 Canon Inc 情報処理装置、その制御方法、プログラム、記憶媒体
CN104159161A (zh) * 2014-08-25 2014-11-19 广东欧珀移动通信有限公司 视频图像帧的定位方法和装置
CN110401878A (zh) * 2019-07-08 2019-11-01 天脉聚源(杭州)传媒科技有限公司 一种视频剪辑方法、系统及存储介质
CN112423135A (zh) * 2020-09-18 2021-02-26 苏宁云计算有限公司 视频回放的信息处理方法、装置、计算机设备和存储介质
CN112580613A (zh) * 2021-02-24 2021-03-30 深圳华声医疗技术股份有限公司 超声视频图像处理方法、系统、设备及存储介质
JP2021061461A (ja) * 2019-10-02 2021-04-15 株式会社Grit プログラム、情報処理装置、情報処理方法及び情報処理システム
CN113099287A (zh) * 2021-03-31 2021-07-09 上海哔哩哔哩科技有限公司 视频制作方法及装置
CN114401452A (zh) * 2021-12-29 2022-04-26 影石创新科技股份有限公司 一种视频预览方法、终端及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2690879B1 (en) * 2012-07-23 2016-09-07 LG Electronics, Inc. Mobile terminal and method for controlling of the same
CN108024073B (zh) * 2017-11-30 2020-09-04 广州市百果园信息技术有限公司 视频编辑方法、装置及智能移动终端
CN111988663B (zh) * 2020-08-28 2022-09-06 北京百度网讯科技有限公司 视频播放节点的定位方法、装置、设备以及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008270908A (ja) * 2007-04-16 2008-11-06 Canon Inc 情報処理装置、その制御方法、プログラム、記憶媒体
CN104159161A (zh) * 2014-08-25 2014-11-19 广东欧珀移动通信有限公司 视频图像帧的定位方法和装置
CN110401878A (zh) * 2019-07-08 2019-11-01 天脉聚源(杭州)传媒科技有限公司 一种视频剪辑方法、系统及存储介质
JP2021061461A (ja) * 2019-10-02 2021-04-15 株式会社Grit プログラム、情報処理装置、情報処理方法及び情報処理システム
CN112423135A (zh) * 2020-09-18 2021-02-26 苏宁云计算有限公司 视频回放的信息处理方法、装置、计算机设备和存储介质
CN112580613A (zh) * 2021-02-24 2021-03-30 深圳华声医疗技术股份有限公司 超声视频图像处理方法、系统、设备及存储介质
CN113099287A (zh) * 2021-03-31 2021-07-09 上海哔哩哔哩科技有限公司 视频制作方法及装置
CN114401452A (zh) * 2021-12-29 2022-04-26 影石创新科技股份有限公司 一种视频预览方法、终端及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于中间文件的视频编辑与播放系统研究;王戴妮;丛志海;常昶;;新媒体研究(第15期);全文 *

Also Published As

Publication number Publication date
CN115278307A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
US11582497B2 (en) Methods, systems, processors and computer code for providing video clips
US20190075342A1 (en) Codec techniques for fast switching
CN110636346B (zh) 一种码率自适应切换方法、装置、电子设备及存储介质
KR102232120B1 (ko) 디지털 비디오 스트림에서의 트릭 플레이
US8918533B2 (en) Video switching for streaming video data
US10484711B2 (en) Dependent random access point pictures
US10863218B2 (en) Method for synchronizing GOPS and IDR-frames on multiple encoders without communication
US20100061443A1 (en) Method and system for video streaming of a graphical display of an application
US20190174177A1 (en) Channel Change Method and Apparatus
JP7472285B2 (ja) ビデオコーディングにおけるサブピクチャ信号伝達
JP2023512749A (ja) ビデオコーディングにおけるサブピクチャ信号伝達
EP3734974A1 (en) Method and apparatus for processing video bitstream, network device, and readable storage medium
CN115278307B (zh) 一种视频播放方法、装置、设备和介质
CN111131874A (zh) 一种解决h.256码流随机接入点播放卡顿的方法及设备
US10824447B2 (en) Content presentation with enhanced closed caption and/or skip back
US20240112703A1 (en) Seamless insertion of modified media content
CN113824715B (zh) 一种实时视频流的播放方法及装置
WO2021114305A1 (zh) 视频处理方法、装置及计算机可读存储介质
CN111093107A (zh) 播放实时直播流的方法和装置
Percival HTML5 Media

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