CN112449213A - 一种基于FFmpeg实现的HLS切片服务方案 - Google Patents
一种基于FFmpeg实现的HLS切片服务方案 Download PDFInfo
- Publication number
- CN112449213A CN112449213A CN202011332237.1A CN202011332237A CN112449213A CN 112449213 A CN112449213 A CN 112449213A CN 202011332237 A CN202011332237 A CN 202011332237A CN 112449213 A CN112449213 A CN 112449213A
- Authority
- CN
- China
- Prior art keywords
- slicing
- data
- video
- processing
- ffmpeg
- 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
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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- 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/238—Interfacing 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/2381—Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
-
- 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
Abstract
本发明公开了一种基于FFmpeg实现的HLS切片服务方案,包括以下步骤;步骤(1)、切片服务从音视频输入源中获取到媒体数据流以后,判断是否需要对输入源进行解协议;步骤(2)、处理步骤1中的输出数据;步骤(3)、处理步骤(2)中的输出数据;步骤(4)、复用处理是对步骤(2)或者步骤(3)的压缩的音视频数据写入到最终的切片文件中;步骤(5)、步骤(4)生成的切片文件最终通过分发服务发布到HTTP服务器上,终端用户就可以使用播放客户端去观看视频。本发明可兼容更多格式的输入码流,并可以以更灵活,更容易拓展的方式来实现切片服务,当有新的协议,封装格式,编码类型的码流接入时,也可以以很小的改动来进行兼容。
Description
技术领域
本发明涉及计算机软件技术领域,具体为一种基于FFmpeg实现的HLS切片服务方案。
背景技术
HLS (HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,媒体分片文件和key加密串文件。其中媒体分片文件的生成是其中的一个重要环节,我们一般使用一个切片服务来生成分片。因为切片服务可能需要面临种类繁多的协议类型,封装格式及音视频编码类型,这对切片服务的兼容性及灵活性提出了挑战。Apple官方提供了mediafilesegmenter工具来生成分片,对于本地媒体文件的处理基本能满足要求,但是对于需要结合现有架构进行实时流切片就相对比较有局限性了,使用很不灵活,兼容性也不够强,除了使用FFmpeg,也有一些其他的工具也可以进行切片服务的开发,但相比FFmpeg都没有什么优势。
针对提供的切片方法并不能很好的满足结合现有架构进行切片,以及兼容多种协议、封装格式及编码类型的转换的问题,提出一种基于FFmpeg实现的HLS切片服务方案。
发明内容
本发明的目的在于提供一种基于FFmpeg实现的HLS切片服务方案,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于FFmpeg实现的HLS切片服务方案,包括以下步骤;
步骤(1)、切片服务从音视频输入源中获取到媒体数据流以后,判断是否需要对输入源进行解协议,如果需要解协议,则调用FFmpeg的libavformat的相关接口初始化其支持的协议的相关结构体,再调用相关接口去做解协议的处理,否则进行到下一步,判断其是否需要进行解复用的处理;
步骤(2)、处理步骤1中的输出数据,如果需要进行解复用处理,则使用libavformat中的解利用相关接口获取到分离的音视频负载数据,否则进行到下一步,判断其是否需要进行转码的处理;
步骤(3)、处理步骤(2)中的输出数据,如果需要进行转码处理,则使用libavcodec中的编解码相关接口获取到解码后的音视频数据,再调用其编码接口,获取到压缩的音视频数据,否则直接进行到下一步,对步骤(2)中解复用的音视频负载进行复用处理;
步骤(4)、复用处理是对步骤(2)或者步骤(3)的压缩的音视频数据写入到最终的切片文件中;
步骤(5)、步骤(4)生成的切片文件最终通过分发服务发布到HTTP服务器上,终端用户就可以使用播放客户端去观看视频。
优选的,步骤(4)中,所述分发服务发布包括切片的类型、等级和版本信息的切片请求,并接收切片服务器返回的切片数据。
优选的,步骤(5)中,所述播放客户端可以缓存更新的切片数据,确认客户端缓存有效。
优选的,步骤(5),所述HTTP服务器包括分别与切片服务器和客户端相连接的WEB加速缓存服务器,所述WEB加速缓存服务器用于缓存切片服务器发送给客户端的切片数据,并返回给客户端,还用于接收客户端发送给切片服务器的切片请求。
本发明提出的一种基于FFmpeg实现的HLS切片服务方案,有益效果在于:本发明可兼容更多格式的输入码流,并可以以更灵活,更容易拓展的方式来实现切片服务,当有新的协议,封装格式,编码类型的码流接入时,也可以以很小的改动来进行兼容。
附图说明
图1为本发明所述一种基于FFmpeg实现的HLS切片服务方案的原理框图;
图2为本发明所述一种基于FFmpeg实现的HLS切片服务方案的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1、请参阅图1-2,本发明提供一种技术方案:一种基于FFmpeg实现的HLS切片服务方案,包括以下步骤;
步骤(1)、切片服务从音视频输入源中获取到媒体数据流以后,判断是否需要对输入源进行解协议,如果需要解协议,则调用FFmpeg的libavformat的相关接口初始化其支持的协议的相关结构体,再调用相关接口去做解协议的处理,否则进行到下一步,判断其是否需要进行解复用的处理;
步骤(2)、处理步骤1中的输出数据,如果需要进行解复用处理,则使用libavformat中的解利用相关接口获取到分离的音视频负载数据,否则进行到下一步,判断其是否需要进行转码的处理;
步骤(3)、处理步骤(2)中的输出数据,如果需要进行转码处理,则使用libavcodec中的编解码相关接口获取到解码后的音视频数据,再调用其编码接口,获取到压缩的音视频数据,否则直接进行到下一步,对步骤(2)中解复用的音视频负载进行复用处理;
步骤(4)、复用处理是对步骤(2)或者步骤(3)的压缩的音视频数据写入到最终的切片文件中;
分发服务发布包括切片的类型、等级和版本信息的切片请求,并接收切片服务器返回的切片数据;
步骤(5)、步骤(4)生成的切片文件最终通过分发服务发布到HTTP服务器上,终端用户就可以使用播放客户端去观看视频;
播放客户端可以缓存更新的切片数据,确认客户端缓存有效;
HTTP服务器包括分别与切片服务器和客户端相连接的WEB加速缓存服务器,所述WEB加速缓存服务器用于缓存切片服务器发送给客户端的切片数据,并返回给客户端,还用于接收客户端发送给切片服务器的切片请求。
通过使用FFmpeg提供的libav相关库在切片服务进行切片前对音视频输入源进行解协议后,得到音视频数据包,再对音视频数据包进行解复用,得到音视频负载数据,根据切片服务的需要来决定是否需要对音视频数据转码,如果需要做转码,则使用FFmpeg的libavcodec相关接口将音视频数据进行解码,再进行编码,然后再使用FFmpeg的libavformat相关接口将编码后的音视频压缩数据复用,音视频输入源经过前处理以后,再根据业务需要决定最终生成的切片格式:TS或者fMP4。生成的切片文件交给分发服务,最终用户通过播放器客户端来观看视频。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (4)
1.一种基于FFmpeg实现的HLS切片服务方案,其特征在于:包括以下步骤;
步骤(1)、切片服务从音视频输入源中获取到媒体数据流以后,判断是否需要对输入源进行解协议,如果需要解协议,则调用FFmpeg的libavformat的相关接口初始化其支持的协议的相关结构体,再调用相关接口去做解协议的处理,否则进行到下一步,判断其是否需要进行解复用的处理;
步骤(2)、处理步骤1中的输出数据,如果需要进行解复用处理,则使用libavformat中的解利用相关接口获取到分离的音视频负载数据,否则进行到下一步,判断其是否需要进行转码的处理;
步骤(3)、处理步骤(2)中的输出数据,如果需要进行转码处理,则使用libavcodec中的编解码相关接口获取到解码后的音视频数据,再调用其编码接口,获取到压缩的音视频数据,否则直接进行到下一步,对步骤(2)中解复用的音视频负载进行复用处理;
步骤(4)、复用处理是对步骤(2)或者步骤(3)的压缩的音视频数据写入到最终的切片文件中;
步骤(5)、步骤(4)生成的切片文件最终通过分发服务发布到HTTP服务器上,终端用户就可以使用播放客户端去观看视频。
2.根据权利要求1所述的一种基于FFmpeg实现的HLS切片服务方案,其特征在于:步骤(4)中,所述分发服务发布包括切片的类型、等级和版本信息的切片请求,并接收切片服务器返回的切片数据。
3.根据权利要求1所述的一种基于FFmpeg实现的HLS切片服务方案,其特征在于:步骤(5)中,所述播放客户端可以缓存更新的切片数据,确认客户端缓存有效。
4.根据权利要求1所述的一种基于FFmpeg实现的HLS切片服务方案,其特征在于:步骤(5),所述HTTP服务器包括分别与切片服务器和客户端相连接的WEB加速缓存服务器,所述WEB加速缓存服务器用于缓存切片服务器发送给客户端的切片数据,并返回给客户端,还用于接收客户端发送给切片服务器的切片请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011332237.1A CN112449213A (zh) | 2020-11-25 | 2020-11-25 | 一种基于FFmpeg实现的HLS切片服务方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011332237.1A CN112449213A (zh) | 2020-11-25 | 2020-11-25 | 一种基于FFmpeg实现的HLS切片服务方案 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112449213A true CN112449213A (zh) | 2021-03-05 |
Family
ID=74737907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011332237.1A Pending CN112449213A (zh) | 2020-11-25 | 2020-11-25 | 一种基于FFmpeg实现的HLS切片服务方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112449213A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055717A (zh) * | 2021-03-08 | 2021-06-29 | 快媒数字科技有限公司 | 一种hls流媒体drm的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796796A (zh) * | 2015-04-21 | 2015-07-22 | 范文鲜 | 提高Android平台的HLS流播放器容错的方法 |
CN107018446A (zh) * | 2017-04-07 | 2017-08-04 | 无锡职业技术学院 | 一种网络视频点播以及直播的推流方法 |
CN107277081A (zh) * | 2016-04-06 | 2017-10-20 | 北京优朋普乐科技有限公司 | 流媒体数据的切片下载方法和装置、流媒体系统 |
CN108391176A (zh) * | 2018-04-09 | 2018-08-10 | 四川百视通科技有限公司 | 一种rtmp协议到hls协议的实时转换系统及其工作方法 |
CN109168090A (zh) * | 2018-10-22 | 2019-01-08 | 中电科新型智慧城市研究院有限公司 | 利用gpu实现h264视频流转hls视频流的方法 |
US10182269B1 (en) * | 2018-04-24 | 2019-01-15 | Verizon Patent And Licensing Inc. | HTTP live streaming delivery over multicast |
CN110933476A (zh) * | 2019-12-06 | 2020-03-27 | 杭州视洞科技有限公司 | 一种基于Relay的HLS首屏时间优化方案 |
-
2020
- 2020-11-25 CN CN202011332237.1A patent/CN112449213A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796796A (zh) * | 2015-04-21 | 2015-07-22 | 范文鲜 | 提高Android平台的HLS流播放器容错的方法 |
CN107277081A (zh) * | 2016-04-06 | 2017-10-20 | 北京优朋普乐科技有限公司 | 流媒体数据的切片下载方法和装置、流媒体系统 |
CN107018446A (zh) * | 2017-04-07 | 2017-08-04 | 无锡职业技术学院 | 一种网络视频点播以及直播的推流方法 |
CN108391176A (zh) * | 2018-04-09 | 2018-08-10 | 四川百视通科技有限公司 | 一种rtmp协议到hls协议的实时转换系统及其工作方法 |
US10182269B1 (en) * | 2018-04-24 | 2019-01-15 | Verizon Patent And Licensing Inc. | HTTP live streaming delivery over multicast |
CN109168090A (zh) * | 2018-10-22 | 2019-01-08 | 中电科新型智慧城市研究院有限公司 | 利用gpu实现h264视频流转hls视频流的方法 |
CN110933476A (zh) * | 2019-12-06 | 2020-03-27 | 杭州视洞科技有限公司 | 一种基于Relay的HLS首屏时间优化方案 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055717A (zh) * | 2021-03-08 | 2021-06-29 | 快媒数字科技有限公司 | 一种hls流媒体drm的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101554997B1 (ko) | 스트리밍 미디어 컨텐츠 모니터링 | |
TWI642283B (zh) | 用於封包標頭壓縮之方法及裝置 | |
US20220224993A2 (en) | Systems and methods for production of fragmented video content | |
US20130042100A1 (en) | Method and apparatus for forced playback in http streaming | |
CN107634930B (zh) | 一种媒体数据的获取方法和装置 | |
US20050193138A1 (en) | Storage medium storing multimedia data, and method and apparatus for reproducing the multimedia data | |
TW200541347A (en) | Data insertion apparatus and methods for use with compressed audio/video data | |
WO2008061416A1 (fr) | Procédé et système permettant d'accepter des données media de divers formats de codage | |
CN103179431A (zh) | Vdi环境下音视频重定向转码分离方法 | |
JP2005176352A (ja) | 移動通信端末機の動画像ストリーミングサービスのための無線動画像ストリーミングファイル、サービス方法及びシステム | |
CN102783147A (zh) | 预算编码 | |
TW200829030A (en) | A Method and apparatus for decoding/encoding of a video signal | |
CN112752115B (zh) | 直播数据传输方法、装置、设备及介质 | |
CN112740325B (zh) | 即时播放帧(ipf)的生成、传输及处理的方法、设备及系统 | |
US7461161B2 (en) | Information processing apparatus and method for decoding encoded data | |
CN112165653B (zh) | 一种视频播放方法、装置及设备 | |
CN110519635A (zh) | 一种无线集群系统的音视频媒体流合流方法及系统 | |
CN108122558B (zh) | 一种latm aac音频流的实时转容实现方法及装置 | |
CN102254560B (zh) | 一种移动数字电视录像中的音频处理方法 | |
CN112449213A (zh) | 一种基于FFmpeg实现的HLS切片服务方案 | |
CN113382278B (zh) | 视频推送方法、装置、电子设备和可读存储介质 | |
JP2019220974A (ja) | 復号装置 | |
KR100608059B1 (ko) | Mot 데이터 복호 방법 및 장치 | |
CN110392276B (zh) | 一种基于rtmp协议同步传输midi的直播录播方法 | |
CN101193105A (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: 20210305 |
|
RJ01 | Rejection of invention patent application after publication |