技术领域
[0001] 本发明涉及视频传输技术领域,尤其涉及一种面向户外大屏的视频传输方法及传输系统。
相关背景技术
[0002] 在当前的视频传输技术领域中,面向户外大屏的视频传输面临着诸多挑战,特别是在保证视频质量、传输效率以及适应复杂网络环境方面。户外大屏作为重要的信息发布平台,其显示效果直接影响到信息的传达效率和观众的观看体验。然而,由于户外环境的特殊性,如网络带宽波动、信号干扰,以及大屏设备本身的性能限制等因素,传统的视频传输方法往往难以满足需求。
[0003] 因此,有必要提供一种面向户外大屏的视频传输方法及传输系统解决上述技术问题。
具体实施方式
[0043] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以互相组合。
[0044] 另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序地处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0045] 实施例一
[0046] 本发明提供了一种面向户外大屏的视频传输方法,包括编码器、解码器以及在所述编码器和解码器间设置缓冲区,参考图1所示,传输方法包括以下步骤:
[0047] S1:通过所述编码器对接收的原始视频数据进行编码,并在编码过程中添加关键帧,得到包含关键帧的视频帧序列。
[0048] 在本实施例中,选择适合户外大屏播放的高效编码格式,包括但不限于H.264或H.265等,这些编码格式能够在保证画质的同时减少带宽需求。
[0049] 在编码过程中,按照一定的时间间隔(例如每隔几秒)插入关键帧(I帧)。关键帧是一个完整的图像帧,无需依赖其他帧即可解码。
[0050] 根据户外大屏的分辨率、刷新率等特性,调整编码器的参数,比如比特率、分辨率、帧率等,以确保视频质量与传输效率之间的平衡。
[0051] 通过关键帧的插入,可以使得视频流在网络不稳定时仍能快速恢复播放,编码参数的优化能够减少传输所需的带宽,降低延迟,提高视频质量。
[0052] S2:实时获取网络状态,并根据所述网络状态实时调整所述缓冲区的容量。
[0053] 在本实施例中,使用网络监测工具实时监控网络状况,当网络状况良好时,减小缓冲区大小以减少延迟;当网络状况变差时,增加缓冲区大小以应对可能的数据丢失。
[0054] 动态调整缓冲区可以有效减少由于网络波动导致的视频卡顿现象,降低延迟,提高用户体验。
[0055] S3:接收经所述编码器编码后的视频帧序列,并将所述视频帧序列缓存于容量调整后的所述缓冲区内。
[0056] 在本实施例中,通过缓存管理机制确保视频帧能够按顺序存储并及时被处理,对接收到的数据包进行校验,如CRC(循环冗余校验),以确保数据完整性和准确性,提高了数据的可靠性和完整性,有序的缓存管理有助于后续的解码过程。
[0057] S4:从缓冲区中读取视频帧序列,并通过所述解码器优先解码所述关键帧,而后对所述视频帧序列中剩余帧进行顺序解码,获取解码后的视频帧数据。
[0058] 在本实施例中,解码器先解码关键帧,因为关键帧是独立的图像帧,不依赖其他帧,关键帧解码完成后,解码器按顺序解码非关键帧(P帧和B帧),这些帧依赖于前后帧的信息,保持解码与播放之间的同步,避免画面撕裂等问题。
[0059] 关键帧优先解码策略提高了视频播放的流畅度和稳定性,同步控制保证了视频播放的质量。
[0060] S5:将解码后的视频帧数据发送至户外大屏进行显示。
[0061] 在本实施例中,使用适合户外大屏的输出接口,如HDMI或SDI等,调整视频输出的色彩空间、亮度、对比度等参数,以适应户外环境的光照条件。
[0062] 保证了户外大屏上的视频播放质量和观看体验,适应不同光照条件下的显示效果。
[0063] 具体地,步骤S1包括以下步骤:
[0064] S101:接收原始视频数据,并对接收的原始视频数据进行预处理,其中,所述预处理包括去噪和色彩校正。
[0065] 在本实施例中,使用高级滤波算法(如双边滤波、中值滤波等)去除原始视频中的噪声,提升视频质量。对于高频噪声,可以采用高斯模糊滤波器进行处理;而对于低频噪声,则可以使用中值滤波器或其他非线性滤波器。
[0066] 根据户外大屏的显示特性和环境光照条件调整视频的色彩空间,确保色彩的准确性和饱和度。可以使用色彩校正算法,如白平衡调整、色彩矩阵变换等,来改善视频的视觉效果。
[0067] 去噪处理提高了视频的清晰度和细节保留能力,减少了传输过程中的数据量,色彩校正确保了视频在户外大屏上的显示效果更加真实自然。
[0068] S102:对预处理后的原始视频数据进行特征识别,确定关键帧位置,并对关键帧进行独立编码。
[0069] 在本实施例中,利用包括但不限于动矢量分析方法和边缘检测方法,识别视频中的显著变化点,这些变化点通常对应于场景转换或重要动作的发生。
[0070] 根据特征识别的结果,在视频流中定期(例如每5秒)或根据特定事件(如场景变化)插入关键帧。关键帧的选择需要考虑到内容的相关性和重要性,确保在传输中断后能够快速恢复播放。
[0071] 关键帧作为一个完整的图像帧进行编码,不依赖于其他帧的信息。可以选择更高的比特率来确保关键帧的高质量,以便在播放时提供更好的视觉体验。
[0072] 特征识别确保了关键帧的合理分布,提高了视频的可恢复性和流畅度,关键帧的独立编码增强了视频流在网络不稳定时的恢复能力。
[0073] S103:对原始视频数据中的非关键帧进行差分编码,并汇总关键帧,得到包含关键帧的视频帧序列。
[0074] 在本实施例中,非关键帧(P帧和B帧)使用差分编码技术,即只编码相对于前一帧或前后帧的变化部分,这样可以大幅减少传输的数据量。
[0075] 在编码过程中,将关键帧与其他非关键帧分开处理,确保关键帧能够被优先传输和解码。同时,确保关键帧之间有足够的间隔,以便在传输中断时能够快速找到最近的关键帧进行播放恢复。
[0076] 按照编码顺序将所有帧汇总成视频帧序列,确保关键帧的位置符合预定的规则,便于后续的传输和解码。
[0077] 差分编码技术减少了传输的数据量,提高了传输效率,关键帧的汇总和合理分布确保了视频播放的连续性和流畅性。
[0078] 具体地,步骤S2包括以下步骤:
[0079] S201:通过网络监测工具实时检测网络状态,其中,所述网络状态包括带宽、延迟和丢包率。
[0080] 在本实施例中,使用实时网络监测工具(如网络性能监控软件或专用硬件设备)持续收集网络的状态信息,包括但不限于可用带宽、端到端延迟和数据包丢失率等,监测工具应该以足够高的频率(例如每秒或更短的时间间隔)收集这些数据,以确保能够及时响应网络状态的变化,记录每次监测得到的数据,用于后续的分析和决策。
[0081] 实时监测网络状态可以迅速捕捉到网络条件的变化,为下一步的缓冲区调整提供依据。
[0082] S202:根据所述带宽、延迟和丢包率,结合预设的评估规则来评估缓冲区的容量需求,得到评估结果。
[0083] 在本实施例中,设定评估规则,根据网络状态的不同组合确定缓冲区的最小和最大容量。示例性的,如果检测到较高的丢包率和较长的延迟,则建议增大缓冲区容量以避免视频播放中断。
[0084] 根据当前的网络状态(带宽、延迟、丢包率)自动计算出缓冲区的推荐容量;同时,为不同的网络状态设定阈值,示例性的,当丢包率达到某个百分比时,触发缓冲区容量的增加;反之,当网络状况良好时,可以适当减少缓冲区容量以减少延迟。
[0085] S203:根据评估结果,利用预设的调整策略调整所述缓冲区的容量,以适应实时的网络状态。
[0086] 在本实施例中,根据评估结果制定调整策略,示例性的,当评估结果显示需要增加缓冲区容量时,可以通过增加缓冲区的大小来实现,反之则减小缓冲区的大小。
[0087] 为了避免缓冲区容量的突然变化引起播放问题,可以采用平滑调整的方式逐步改变缓冲区的大小,例如按照一定比例逐渐增加或减少。
[0088] 动态调整缓冲区容量能够有效减少视频卡顿现象,提高用户观看体验。
[0089] 具体地,步骤S3包括以下步骤:
[0090] S301:接收编码后的视频帧序列,并按照所述视频帧序列的时间戳进行排序。
[0091] 在本实施例中,通过网络接收由编码器发送过来的视频帧序列。每个视频帧都包含一个时间戳,表示其在原始视频流中的位置;收到视频帧后,根据每个视频帧的时间戳将其插入到适当的队列或数组中,确保视频帧按照它们在原始视频流中的时间顺序排列。
[0092] 时间戳排序确保了视频帧能够按照正确的顺序被解码和播放,从而避免了视频内容的混乱。
[0093] S302:获取容量调整后的所述缓冲区的实时容量,并读取所述缓冲区内已占用的容量。
[0094] 在本实施例中,定期查询缓冲区的当前容量,这可以通过访问缓冲区管理模块或直接读取缓冲区的元数据获得,统计缓冲区内已有的数据量,即已缓存的视频帧所占的空间大小。
[0095] 实时监控缓冲区的容量可以帮助系统做出及时的调整,以适应网络状态的变化。
[0096] S303:基于预设的缓冲管理策略,根据容量调整后的所述缓冲区的实时容量以及已占用的容量,对排序后的所述视频帧序列进行缓存。
[0097] 在本实施例中,缓冲管理策略定义了如何根据当前缓冲区的容量和已占用容量来决定哪些视频帧可以被缓存,如果缓冲区还有足够的空间,那么继续缓存新的视频帧;如果缓冲区接近满载,则停止缓存新的视频帧,直到有足够的空间,当缓冲区满载时,可以采用先进先出(FIFO)或最近最少使用(LRU)等策略来移除旧的视频帧,为新到来的视频帧腾出空间。
[0098] 通过有效的缓冲管理策略,可以确保视频播放的连续性和流畅性,同时避免因缓冲区溢出而导致的视频播放中断。
[0099] 具体地,步骤S4包括以下步骤:
[0100] S401:定位关键帧,并通过所述解码器对关键帧进行解码。
[0101] 在本实施例中,在缓冲区中查找带有特殊标识的关键帧(I帧),这些帧在编码时被标记以便于快速定位,使用解码器对关键帧进行解码,由于关键帧是一个完整的图像帧,因此可以直接解码而不需要参考其他帧的信息,确保关键帧总是优先于非关键帧被解码,以保证视频播放的流畅性和稳定性。
[0102] 关键帧的优先解码策略确保了视频播放的连续性和稳定性,即使在网络不佳的情况下也能快速恢复播放。
[0103] S402:按帧顺序读取所述视频帧序列中的非关键帧,并参考已解码的关键帧进行解码。
[0104] 在本实施例中,按照视频帧序列的时间顺序从缓冲区中读取非关键帧(P帧和B帧),对于每个非关键帧,根据其编码类型(P帧或B帧)选择相应的参考帧。P帧通常参考前一个关键帧或前一个P帧,而B帧可能同时参考前一个和后一个关键帧,利用差分编码原理,根据选定的参考帧来解码非关键帧。解码器会根据非关键帧与参考帧之间的差异信息来重构完整的图像帧。
[0105] S403:合并关键帧解码和非关键帧解码后的数据,得到解码后的视频帧数据。
[0106] 在本实施例中,将解码后的关键帧和非关键帧按照时间顺序整合在一起,形成连续的视频帧序列,确保解码后的视频帧与播放时间保持一致,避免画面撕裂或不同步的问题,准备好解码后的视频帧数据,以便发送给户外大屏进行显示。
[0107] 通过整合解码后的关键帧和非关键帧数据,可以确保视频播放的连贯性和高质量。
[0108] 具体地,步骤S5包括以下步骤:
[0109] S501:对解码后的视频帧数据进行数据格式转换,并将经过数据格式转换的视频帧数据按序组织成视频流。
[0110] 在本实施例中,将解码后的视频帧数据从解码器的内部格式转换为适合户外大屏显示的格式。例如,如果解码器使用的是YUV格式,而户外大屏需要的是RGB格式,则需要进行YUV到RGB的色彩空间转换。
[0111] 将转换后的视频帧数据按时间顺序重新组织成连续的视频流,确保视频帧的播放顺序正确无误,此外,还需要添加一些必要的元数据,如时间戳、帧率等信息,以确保视频流的正确播放。
[0112] S502:通过传输协议将构建好的视频流发送到户外大屏,并显示处理。
[0113] 在本实施例中,根据户外大屏的技术规格和网络环境选择合适的传输协议,例如TCP/IP、UDP、RTSP、HLS等,将视频流分割成合适大小的数据包,并根据所选传输协议的要求进行封装,通过网络将封装好的数据包发送到户外大屏的接收端,户外大屏接收到视频流后,对其进行解包,并将其显示在屏幕上。
[0114] 通过高效的传输协议,确保了视频流能够及时准确地送达户外大屏,显示处理确保了视频能够在户外大屏上得到清晰稳定地展示。
[0115] 具体地,在步骤S4之前,还包括:
[0116] 检查所述缓冲区中已缓存的视频帧序列是否达到预设的解码条件,若是,则执行步骤S4,其中,所述解码条件为所述缓冲区达到满载状态;
[0117] 若不是,则继续缓存视频帧序列,直至已缓存的视频帧序列达到预设的解码条件。
[0118] 在本实施例中,设定解码启动的条件,例如缓冲区达到一定的满载状态(例如80%或90%的容量),或者缓冲区中有一定数量的关键帧(例如至少有2个关键帧)。
[0119] 定期检查缓冲区的状态,包括当前已缓存的视频帧序列的长度、缓冲区的当前容量以及是否有足够的关键帧。
[0120] 如果已缓存的视频帧序列满足预设的解码条件(例如缓冲区达到预设的满载状态),则开始执行解码操作。
[0121] 如果当前未满足解码条件,则继续缓存视频帧序列,直到满足解码条件为止。
[0122] 通过等待缓冲区达到预设的解码条件,可以确保有足够的数据进行解码,避免因数据不足而导致的解码失败或视频播放中断,确保解码操作在缓冲区有足够的数据支持时进行,有助于提高视频播放的流畅性和稳定性,通过合理的解码时机选择,可以优化资源利用,减少不必要的解码操作,提高系统的整体效率。
[0123] 本发明提供的一种面向户外大屏的视频传输方法的工作原理如下:
[0124] 首先,视频数据在传输前需要进行编码处理,以减小数据量并适应网络带宽的限制。然而,简单的编码处理往往无法充分保留视频的关键信息,导致在解码后视频质量下降,影响观看效果。特别是在户外大屏上,视频画面的清晰度和流畅度至关重要。因此,在编码过程中添加关键帧,并确保这些关键帧能够优先传输和解码,成为提高视频传输质量的重要手段。
[0125] 其次,网络环境的多变性是户外视频传输面临的另一大挑战。由于户外环境复杂多变,网络带宽、延迟和丢包率等参数难以保持稳定。这要求视频传输系统必须具备实时获取网络状态并动态调整传输策略的能力。通过设置缓冲区,并根据网络状态实时调整其容量,可以在一定程度上缓解网络波动对视频传输的影响,提高传输的稳定性和可靠性。
[0126] 此外,视频帧序列的缓存和解码也是影响视频传输效果的关键因素。在接收到编码后的视频帧序列后,如何高效地缓存这些帧数据,并在解码时优先处理关键帧,以确保视频内容的连贯性和主要信息的快速呈现,是视频传输系统需要解决的重要问题。传统的顺序解码方式往往无法满足这一需求,因此需要采用更加智能的解码策略。
[0127] 最后,将解码后的视频帧数据准确无误地发送至户外大屏进行显示,是整个视频传输过程的最终目的。这要求视频传输系统必须具备与大屏设备良好通信的能力,并能够根据大屏设备的性能特点和显示要求,对视频数据进行适当的格式转换和适配处理。
[0128] 综上所述,本发明通过编码器、解码器以及缓冲区的协同工作,实现面向户外大屏的高效视频传输。
[0129] 实施例二
[0130] 本发明还提供了一种面向户外大屏的视频传输系统,用于执行所述的一种面向户外大屏的视频传输方法,包括编码器、解码器以及在所述编码器和解码器间设置缓冲区,参考图2所示,传输系统包括:
[0131] 视频编码模块100,用于通过所述编码器对接收的原始视频数据进行编码,并在编码过程中添加关键帧,得到包含关键帧的视频帧序列。
[0132] 网络状态获取模块200,用于实时获取网络状态,并根据所述网络状态实时调整所述缓冲区的容量。
[0133] 缓存模块300,用于接收经所述编码器编码后的视频帧序列,并将所述视频帧序列缓存于容量调整后的所述缓冲区内。
[0134] 解码模块400,用于从缓冲区中读取视频帧序列,并通过所述解码器优先解码所述关键帧,而后对所述视频帧序列中剩余帧进行顺序解码,获取解码后的视频帧数据。
[0135] 显示模块500,用于将解码后的视频帧数据发送至户外大屏进行显示。
[0136] 本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框,以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0137] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一种计算机可读存储介质中,存储介质包括只读存储器(Read‑Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read‑only Memory,PROM)、可擦除可编程只读存储器(Erasable Pr ogrammable Read Only Memory,EPROM)、一次可编程只读存储器(One‑time Programmable Read‑Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically‑Erasable Programmable Read‑Only Memory,EEPROM)、只读光盘(CompactDisc Read‑Only Memory,CD‑ROM)或其他光盘存储器、磁盘存储器、磁带存储器,或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0138] 还需要说明的是,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者还是包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。