CN117979093A - 一种基于live555和FFmpeg框架的无线自组网视频传输系统 - Google Patents
一种基于live555和FFmpeg框架的无线自组网视频传输系统 Download PDFInfo
- Publication number
- CN117979093A CN117979093A CN202311639495.8A CN202311639495A CN117979093A CN 117979093 A CN117979093 A CN 117979093A CN 202311639495 A CN202311639495 A CN 202311639495A CN 117979093 A CN117979093 A CN 117979093A
- Authority
- CN
- China
- Prior art keywords
- video
- module
- real
- hoc network
- wireless
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 230000009471 action Effects 0.000 abstract description 4
- 238000012360 testing method Methods 0.000 abstract description 4
- 238000012795 verification Methods 0.000 abstract description 4
- 238000004321 preservation Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440218—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream 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
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6131—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6181—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于live555和FFmpeg框架的无线自组网视频传输系统,涉及视频传输技术领域。包括:视频采集模块和拉流传输模块,以及设置在应用终端的实时解码模块、视频播放模块和多格式视频存储模块,视频采集模块、拉流传输模块和实时解码模块依次连接,实时解码模块分别与视频播放模块和多格式视频存储模块连接。本发明提供的无线自组网视频传输系统,能够实时转码存储如MP4、MKV等多格式的视频流数据,该功能高度贴合无线自组网设备实际使用情形,常用于后期测试复盘、记录保存和行动证明等用途。
Description
技术领域
本发明涉及视频传输技术领域,具体涉及一种基于live555和FFmpeg框架的无线自组网视频传输系统。
背景技术
成熟的实时视频传输一般通过基础网络进行无线传输或有线传输,虽然稳定性好但缺乏了灵活性,如果在一些比如野外、海面等无基础网络覆盖的场景下,一般的实时视频传输方案就无法满足要求。在无线自组网环境下,设备可以自动建立临时网络,但这种网络可能具有不稳定性和带宽限制。
发明内容
本发明提供了一种基于live555和FFmpeg框架的无线自组网视频传输系统,为了解决无线自组网环境下,设备自动建立的临时网络可能具有不稳定性和带宽限制的问题。
为了解决上述技术问题,本发明采用如下技术方案:
一种基于live555和FFmpeg框架的无线自组网视频传输系统,包括:视频采集模块和拉流传输模块,以及设置在应用终端的实时解码模块、视频播放模块和多格式视频存储模块,所述视频采集模块、所述拉流传输模块和所述实时解码模块依次连接,所述实时解码模块分别与所述视频播放模块和所述多格式视频存储模块连接,其中:
所述视频采集模块用于获取视频数据并编码,所述拉流传输模块用于调用live555框架与所述视频采集模块建立连接,拉取编码后的所述视频数据,将编码后的所述视频数据通过自组网无线电台发送给所述实时解码模块,所述实时解码模块用于基于FFmpeg服务接口对所述视频数据进行逐帧解码,并将解码后的视频数据发送给视频播放模块进行播放,和/或发送给多格式视频存储模块进行存储。
在此基础上,本发明还可以作如下改进:
所述拉流传输模块具体用于将编码后的所述视频数据通过RTSP协议传输发送给所述实时解码模块。
在此基础上,本发明还可以作如下改进:
所述拉流传输模块具体用于初始化后创建媒体会话,创建媒体流拉取器,然后设置回调函数,以便在接受到媒体数据时进行处理,使用RTSPClient发送RTSP命令来请求媒体流,拉取视频数据,最后停止模块和释放资源。
在此基础上,本发明还可以作如下改进:
所述拉流传输模块中设置有本地缓存池,本地缓存池用于存储至少3秒的视频数据,视频数据从缓存池发送至实时解码模块时进行独立计时,保证视频编码帧在解码时具有连贯性。
在此基础上,本发明还可以作如下改进:
所述拉流传输模块还用于当自组网无线电台连接中断时,在RTSPClient发送建立连接请求,收到RTSPServer响应后调用AutoRrconnection接口,产生独立运行检测进程,来检测与RTSPServer端的连接状态,定时进行连接访问;若出现连接失败或超时,检测进程根据设定的重连策略自动尝试重新建立连接,调用应用终端发送RTSPClient连接指令,尝试请求建立新的连接,直至连接成功或达到最大重连次数和达到重连超时。
在此基础上,本发明还可以作如下改进:
所述实时解码模块具体用于接收到编码后的视频数据后,使用avformat_find_stream_info()函数查找媒体流信息,使用avcodec_find_decoder()函数查找适合的视频编解码的视频解码器;运用avcodec_open2()函数打开所述视频解码器:使用avcodec_alloc_context3()函数分配所述视频解码器的上下文,并将所述视频解码器参数设置为默认值或特定的解码选项;使用avcodec_decode_video2()函数对编码后的视频数据进行解码,并将解码后得到的视频数据存储至av_frame_alloc()函数创建解码数据的AVFrame结构中,最后传输至所述视频播放模块和/或所述多格式视频存储模块。
在此基础上,本发明还可以作如下改进:
所述视频播放模块具体用于使用avformat_open_input()函数打开解码后的所述视频数据,并获取相关的输入格式上下文(AVFormatContext);使用avformat_find_stream_info()查找媒体流的信息,然后重复解码流程。
在此基础上,本发明还可以作如下改进:
所述多格式视频存储模块具体用于接收所述实时解码模块运行的视频信息参数;使用avformat_alloc_output_context2()函数创建输出格式上下文,用于输出转码后的视频;使用avformat_new_stream()创建一个新的视频流,并将其添加到输出格式上下文中,然后设置输出视频流的编码器参数;使用avcodec_find_encoder()函数找到视频编码器,并初始化,然后开始转码;从输入流中读取一帧视频进行解码,然后重新编码并写入文件;释放资源。
本发明提供的无线自组网视频传输系统,能够实时转码存储如MP4、MKV等多格式的视频流数据,该功能高度贴合无线自组网设备实际使用情形,常用于后期测试复盘、记录保存和行动证明等用途。
应用终端程序使用静态编译,使得该系统具有轻量化和可移植性;系统能够处理多种视频格式和传输协议,可以实现多平台兼容性,从而确保广泛的设备支持。
本发明基于Live555和FFmpeg框架实现,所以具有高度的开源性、可定制性和可扩展性,后期开发人员可以根据具体需求进行定制和扩展,以满足不同应用场景的需求,在未来可以轻松添加新的功能或适应新的无线网络技术。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明实施例提供的整体架构示意图;
图2为本发明实施例提供的无线自组网视频传输系统示意图;
图3为本发明实施例提供的断线重连及自动重传流程示意图;
图4为本发明实施例提供的解码调度流程示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明为适应无线自组网的拓扑结构可能会频繁变化,节点连接和信号质量也不断波动的情形,提供了一个稳定、高质量的视频传输解决方案。应用终端本地运用缓存池机制及深度结合无线自组网自动重传功能,确保视频传输的连续性和稳定性;还运用监测接口实现断线重连,满足无线自组网在无人环境下的应用需求。
本发明提供的系统具有如下功能:
克服无线网络不稳定性:无线自组网系统的拓扑结构可能会频繁变化,节点连接和信号质量也可能不断波动。因此,设计一个系统,可以适应这种不稳定性,应用终端本地运用缓存池及深度结合无线自组网自动重传功能,确保视频传输的连续性和稳定性,对于实时监控、远程协作等关键应用至关重要。
提供高质量的视频解码:为了在目标设备上观看视频,需要对接收到的视频数据进行解码。使用FFmpeg可以实现高质量的解码,确保视频在各种分辨率和编码格式下的清晰度和流畅度。
灵活性和可定制性:基于live555和FFmpeg的系统通常是开源和高度可定制的。这意味着开发人员可以根据具体需求进行定制和扩展,以满足不同应用场景的需求。
维护性和可扩展性:这种系统的设计可以具备良好的维护性和可扩展性,以便在未来可以轻松添加新的功能或适应新的无线网络技术。
多平台兼容性:不同设备和平台可能使用不同的视频编码格式和传输协议。通过采用live555框架和FFmpeg,可以实现多平台兼容性,使系统能够处理多种视频格式和协议,从而确保广泛的设备支持。
图2提供了示例性的无线自组网视频传输系统,包含无线电台、应用终端和视频采集终端各部分,在这个装置中,live555框架用于处理视频数据的传输和协议的管理,用于接收、分发和流化视频数据,以便在网络上传输;包括设备终端与IP摄像头建立连接,通过live555接口服务拉取编码压缩后的视频流数据,视频流基于RTSP协议传输,经过自组网无线传输电台,发送至设备终端;无线传输通常涉及到视频数据的编码、压缩、传输和解压等步骤,以确保视频在传输过程中具有足够的质量和帧率。FFmpeg是一个广泛使用的多媒体处理库,它包含了用于解码、编码、转码和处理视频数据的工具和库。在这个系统中,FFmpeg用于解码接收到的视频数据,将其转换成可渲染的格式,以便在目标设备上播放;进一步选择进行不同编码格式的视频存储或使用SDL2方式播放视频;通过使用缓存池暂存数据帧的机制,重定义待解码数据帧间隔和顺序,以及结合自组网自动重传功能,来解决无线远距离传输视频数据易丢帧或误码的问题。无线自组网因为部署灵活,无线网络复杂多变,在无线信道较差或重新组网后,该系统能够灵活性的进行视频断线重连,保证了视频传输的稳定性和连续性。
基于live555框架和FFmpeg的视频无线传输及解码系统主要关注在无线网络环境下,使用live555来管理视频流的传输和协议,同时使用FFmpeg来解码接收到的视频数据,并最终在目标设备上显示视频内容。这个系统的核心目标是实现高质量的视频传输和解码,以满足实际应用场景中对视频的需求。
下面结合具体示例说明。
如图1所示,为本发明实施例提供的整体架构示意图,该基于live555和FFmpeg框架的无线自组网视频传输系统包括:视频采集模块和拉流传输模块,以及设置在应用终端的实时解码模块、视频播放模块和多格式视频存储模块,视频采集模块、拉流传输模块和实时解码模块依次连接,实时解码模块分别与视频播放模块和多格式视频存储模块连接,其中:
视频采集模块用于获取视频数据并编码,拉流传输模块用于调用live555框架与视频采集模块建立连接,拉取编码后的视频数据,将编码后的视频数据通过自组网无线电台发送给实时解码模块,实时解码模块用于基于FFmpeg服务接口对视频数据进行逐帧解码,并将解码后的视频数据发送给视频播放模块进行播放,和/或发送给多格式视频存储模块进行存储。
应理解,拉流传输模块是将live555框架集成到系统中,以处理视频流的传输和协议管理。这包括配置live555以接收和流化视频数据,并确保其适应无线自组网环境的不稳定性。在视频源端编码格式包括H.264或H.265以减少数据传输的带宽需求。视频数据通过无线自组网进行传输,保存至终端本地缓存池,等待发送至解码模块或存储模块,该模块具有自动断线重连、抗抖动和抗丢包等特点,以确保视频传输的连续性。实时解码模块是基于FFmpeg服务接口对拉流传输模块的视频帧数据逐帧解码,这可以确保高质量的解码,自动识别压缩编码格式,将视频帧解码为YUV数据,传输至视频播放模块播放视频;多格式视频存储模块实现格式转换,将视频编码格式为H.264或H.265的视频流转码为MKV、mp4等视频格式存储在本地应用终端,便于后期查验或导出。
具体地,通过live555服务拉取ip摄像头压缩封装的视频数据流,暂存于本地缓存池中,逐帧传输至ffmpeg接口服务进行视频画面解码,视频数据由H.265/H.264解码为YUV格式,再由AudioPlayer支持的SDL2播放视频。
具体地,视频采集模块使用摄像头或其他设备捕获视频数据,视频采集模块可以适用市面上普通IP摄像头,通用编码格式为H.264或H.265;由拉流传输模块调用live555框架与摄像头建立连接,将编码后的视频流通过RTSP协议传输,使用自组网无线电台发送至远端,传输至接收电台应用终端进行解码、播放或存储等。
建立连接具体操作步骤为:应用终端调用该系统发送RTSPClient连接指令,通过无线自组网传输,请求与对端视频采集模块建立连接,等待RTSPServer响应以通过无线自组网回传,客户端收到回复握手成功。通常需要输入常用的连接参数,如对端视频采集模块的IP地址、端口号,请求主码流或子码流等参数信息;还支持输入用户名和密码建立连接,调用Authenticator函数接口获取用户名和密码,通过sendDescribeCommand函数发送连接请求指令,所以适用各种视频采集终端,有良好的兼容性。
本实施例提供的无线自组网视频传输系统,能够实时转码存储如MP4、MKV等多格式的视频流数据,该功能高度贴合无线自组网设备实际使用情形,常用于后期测试复盘、记录保存和行动证明等用途。
应用终端程序使用静态编译,使得该系统具有轻量化和可移植性;系统能够处理多种视频格式和传输协议,可以实现多平台兼容性,从而确保广泛的设备支持。
本实施例基于Live555和FFmpeg框架实现,所以具有高度的开源性、可定制性和可扩展性,后期开发人员可以根据具体需求进行定制和扩展,以满足不同应用场景的需求,在未来可以轻松添加新的功能或适应新的无线网络技术。
可选地,在一些可能的实施方式中,拉流传输模块具体用于将编码后的视频数据通过RTSP协议传输发送给实时解码模块。
可选地,在一些可能的实施方式中,拉流传输模块具体用于初始化后创建媒体会话,创建媒体流拉取器,然后设置回调函数,以便在接受到媒体数据时进行处理,使用RTSPClient发送RTSP命令来请求媒体流,拉取视频数据,最后停止模块和释放资源。
可选地,在一些可能的实施方式中,拉流传输模块中设置有本地缓存池,本地缓存池用于存储至少3秒的视频数据,视频数据从缓存池发送至实时解码模块时进行独立计时,保证视频编码帧在解码时具有连贯性。
在应用终端中建立缓存池,可存储3秒以上的视频帧数据,主要是因为在自组网自动重传功能中,实现类似TCP连接重传功能,会导致视频帧数据在无线传输过程中出现延时,所以在应用终端本地建立缓存池,出缓存池发送至解码模块时进行独立计时,保证视频编码帧在解码时具有连贯性,保证了视频播放的流畅性。在外场自组网电台无线传输视频时,因为距离变化、运动性或遮挡等因素,导致信道的变化,引起网络传输不稳定甚至掉网,自组网电台会进行重新组网,这时应用终端与视频采集终端建立的连接会出现中断,为保证快速恢复视频传输,实施应用终端自动重连功能。
具体实现方法,如图3所示:在拉流传输模块RTSPClient发送建立连接请求,收到RTSPServer响应后调用AutoRrconnection接口,产生独立运行检测进程,来检测与RTSPServer端的连接状态,定时进行连接访问;若出现连接失败或超时该进程会根据设定的重连策略自动尝试重新建立连接,调用应用终端系统发送RTSPClient连接指令,尝试请求建立新的连接,直至连接成功或达到最大重连次数和达到重连超时。避免在视频采集终端掉线后,长时间请求重连导致自组网无线信道资源的浪费。
在拉流传输模块中具有本地缓存池,结合自组网传输自动重传功能,有效的防止视频数据帧的丢失,提高了在信道资源较差时的视频流畅度。
可选地,在一些可能的实施方式中,拉流传输模块还用于当自组网无线电台连接中断时,在RTSPClient发送建立连接请求,收到RTSPServer响应后调用AutoRrconnection接口,产生独立运行检测进程,来检测与RTSPServer端的连接状态,定时进行连接访问;若出现连接失败或超时,检测进程根据设定的重连策略自动尝试重新建立连接,调用应用终端发送RTSPClient连接指令,尝试请求建立新的连接,直至连接成功或达到最大重连次数和达到重连超时。
可选地,在一些可能的实施方式中,如图4所示,实时解码模块具体用于接收到编码后的视频数据后,使用avformat_find_stream_info()函数查找媒体流信息,使用avcodec_find_decoder()函数查找适合的视频编解码的视频解码器;运用avcodec_open2()函数打开视频解码器;使用avcodec_alloc_context3()函数分配视频解码器的上下文,并将视频解码器参数设置为默认值或特定的解码选项;使用avcodec_decode_video2()函数对编码后的视频数据进行解码,并将解码后得到的视频数据存储至av_frame_alloc()函数创建解码数据的AVFrame结构中,最后传输至视频播放模块和/或多格式视频存储模块。
可选地,在一些可能的实施方式中,视频播放模块具体用于使用avformat_open_input()函数打开解码后的视频数据,并获取相关的输入格式上下文(AVFormatContext);使用avformat_find_stream_info()查找媒体流的信息,然后重复解码流程。
具体地,视频播放模块具体用于使用SDL_Init()初始化SDL2;使用SDL_CreateWindow()和SDL_CreateTexture()函数创建窗口和渲染器,用于显示视频,窗口width和height参数可直接从实时窗口获取;使用sws_getContext()函数进行数据参数转换,以自适应屏幕大小;将解码后的AVFrame经过sws_scale()转换为rgbFrame结构,依次使用SDL_UpdateYUVTexture(),SDL_RenderClear(),SDL_RenderCopy(),SDL_RenderPresent()进行处理,用于将解码后的视频帧复制到SDL2渲染器中,然后将渲染器中的帧呈现到窗口上。
视频存储模块是在实时视频传输过程中可选择的调度模块,用于应用终端获取视频流数据后存储在本地,可与视频播放同时进行。无线自组网在实际使用过程中,视频数据作为最重要的业务之一不仅需要实时传输播放,而且定时存储也是十分重要的,常用于后期测试复盘、记录保存和行动证明等用途。视频流传输使用H.264或H.265视频编码格式,存储时可选择多种容器格式,如MP4、AVI、MKV、FLV和MOV格式。
可选地,在一些可能的实施方式中,多格式视频存储模块具体用于接收实时解码模块运行的视频信息参数;使用avformat_alloc_output_context2()函数创建输出格式上下文,用于输出转码后的视频;使用avformat_new_stream()创建一个新的视频流,并将其添加到输出格式上下文中,然后设置输出视频流的编码器参数;使用avcodec_find_encoder()函数找到视频编码器,并初始化,然后开始转码;从输入流中读取一帧视频进行解码,然后重新编码并写入文件;释放相关资源。
可选地,在一些可能的实施方式中,可以包括如上各实施方式的全部或部分。
在以上说明中,终端可以泛指手机、电脑、平板或工控机等设备。
应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式相结合。此外,在不互相矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的部分特征进行结合和组合。
当然,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可以根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明的权利要求的保护范围。
Claims (8)
1.一种基于live555和FFmpeg框架的无线自组网视频传输系统,其特征在于,包括:视频采集模块和拉流传输模块,以及设置在应用终端的实时解码模块、视频播放模块和多格式视频存储模块,所述视频采集模块、所述拉流传输模块和所述实时解码模块依次连接,所述实时解码模块分别与所述视频播放模块和所述多格式视频存储模块连接,其中:
所述视频采集模块用于获取视频数据并编码,所述拉流传输模块用于调用live555框架与所述视频采集模块建立连接,拉取编码后的所述视频数据,将编码后的所述视频数据通过自组网无线电台发送给所述实时解码模块,所述实时解码模块用于基于FFmpeg服务接口对所述视频数据进行逐帧解码,并将解码后的视频数据发送给视频播放模块进行播放,和/或发送给多格式视频存储模块进行存储。
2.根据权利要求1所述的基于live555和FFmpeg框架的无线自组网视频传输系统,其特征在于,所述拉流传输模块具体用于将编码后的所述视频数据通过RTSP协议传输发送给所述实时解码模块。
3.根据权利要求2所述的基于live555和FFmpeg框架的无线自组网视频传输系统,其特征在于,所述拉流传输模块具体用于初始化后创建媒体会话,创建媒体流拉取器,然后设置回调函数,以便在接受到媒体数据时进行处理,使用RTSPClient发送RTSP命令来请求媒体流,拉取视频数据,最后停止模块和释放资源。
4.根据权利要求3所述的基于live555和FFmpeg框架的无线自组网视频传输系统,其特征在于,所述拉流传输模块中设置有本地缓存池,本地缓存池用于存储至少3秒的视频数据,视频数据从缓存池发送至实时解码模块时进行独立计时,保证视频编码帧在解码时具有连贯性。
5.根据权利要求3所述的基于live555和FFmpeg框架的无线自组网视频传输系统,其特征在于,所述拉流传输模块还用于当自组网无线电台连接中断时,在RTSPClient发送建立连接请求,收到RTSPServer响应后调用AutoRrconnection接口,产生独立运行检测进程,来检测与RTSPServer端的连接状态,定时进行连接访问;若出现连接失败或超时,检测进程根据设定的重连策略自动尝试重新建立连接,调用应用终端发送RTSPClient连接指令,尝试请求建立新的连接,直至连接成功或达到最大重连次数和达到重连超时。
6.根据权利要求1所述的基于live555和FFmpeg框架的无线自组网视频传输系统,其特征在于,所述实时解码模块具体用于接收到编码后的视频数据后,使用avformat_find_stream_info()函数查找媒体流信息,使用avcodec_find_decoder()函数查找适合的视频编解码的视频解码器;运用avcodec_open2()函数打开所述视频解码器;使用avcodec_alloc_context3()函数分配所述视频解码器的上下文,并将所述视频解码器参数设置为默认值或特定的解码选项;使用avcodec_decode_video2()函数对编码后的视频数据进行解码,并将解码后得到的视频数据存储至av_frame_alloc()函数创建解码数据的AVFrame结构中,最后传输至所述视频播放模块和/或所述多格式视频存储模块。
7.根据权利要求1所述的基于live555和FFmpeg框架的无线自组网视频传输系统,其特征在于,所述视频播放模块具体用于使用avformat_open_input()函数打开解码后的所述视频数据,并获取相关的输入格式上下文(AVFormatContext);使用avformat_find_stream_info()查找媒体流的信息,然后重复解码流程。
8.根据权利要求1所述的基于live555和FFmpeg框架的无线自组网视频传输系统,其特征在于,所述多格式视频存储模块具体用于接收所述实时解码模块运行的视频信息参数;使用avformat_alloc_output_context2()函数创建输出格式上下文,用于输出转码后的视频;使用avformat_new_stream()创建一个新的视频流,并将其添加到输出格式上下文中,然后设置输出视频流的编码器参数;使用avcodec_find_encoder()函数找到视频编码器,并初始化,然后开始转码;从输入流中读取一帧视频进行解码,然后重新编码并写入文件;释放资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311639495.8A CN117979093A (zh) | 2023-12-01 | 2023-12-01 | 一种基于live555和FFmpeg框架的无线自组网视频传输系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311639495.8A CN117979093A (zh) | 2023-12-01 | 2023-12-01 | 一种基于live555和FFmpeg框架的无线自组网视频传输系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117979093A true CN117979093A (zh) | 2024-05-03 |
Family
ID=90854344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311639495.8A Pending CN117979093A (zh) | 2023-12-01 | 2023-12-01 | 一种基于live555和FFmpeg框架的无线自组网视频传输系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117979093A (zh) |
-
2023
- 2023-12-01 CN CN202311639495.8A patent/CN117979093A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109327728B (zh) | 一种一对多同屏方法、装置和系统、同屏设备及存储介质 | |
JP4433287B2 (ja) | 受信装置および方法、並びにプログラム | |
CN102742244B (zh) | 一种用于从媒体服务器供给媒体的方法、设备和装置 | |
CN100568947C (zh) | 通信系统、终端设备和通信方法 | |
CN112752115B (zh) | 直播数据传输方法、装置、设备及介质 | |
US9014277B2 (en) | Adaptation of encoding and transmission parameters in pictures that follow scene changes | |
JP2005176352A (ja) | 移動通信端末機の動画像ストリーミングサービスのための無線動画像ストリーミングファイル、サービス方法及びシステム | |
KR101821123B1 (ko) | 웹브라우저 상에서 미디어 스트림을 재생하는 방법 및 장치 | |
KR101821124B1 (ko) | 웹브라우저 상에서 미디어 스트림을 재생하는 방법 및 장치 | |
JP2008193510A (ja) | 映像送信装置、映像受信装置、及び映像伝送システム | |
CN104581234B (zh) | 一种机顶盒及基于机顶盒实现媒体数据转码的方法和系统 | |
CN107852479A (zh) | 在视频电话中切换显示装置 | |
CN112584194A (zh) | 视频码流的推送方法、装置、计算机设备和存储介质 | |
CN105979284B (zh) | 移动终端视频共享方法 | |
EP3213506A1 (en) | Feeding intra-coded video frame after port reconfiguration in video telephony | |
CN112165636A (zh) | D2d网络多媒体流码率调节方法及多媒体流实时传输系统 | |
CN117979093A (zh) | 一种基于live555和FFmpeg框架的无线自组网视频传输系统 | |
US8797960B2 (en) | Gateway apparatus, method and communication system | |
JP2010272943A (ja) | ネットワークデコーダ装置 | |
CN116156105A (zh) | 一种智能接入多种协议的网络摄像机接入方法及平台 | |
CN114470745A (zh) | 一种基于srt的云游戏实现方法、装置及系统 | |
JP4433286B2 (ja) | 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム | |
WO2011142312A1 (ja) | リモート型携帯通信システム、サーバ装置及びリモート型携帯通信システム制御方法 | |
CN117041609A (zh) | 一种基于mqtt的轻量级视频推流方法和系统 | |
KR100655554B1 (ko) | 유니버설 멀티미디어 액세스 시스템 |
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 |