CN110192395B - 客户端侧视频转码 - Google Patents

客户端侧视频转码 Download PDF

Info

Publication number
CN110192395B
CN110192395B CN201780083935.2A CN201780083935A CN110192395B CN 110192395 B CN110192395 B CN 110192395B CN 201780083935 A CN201780083935 A CN 201780083935A CN 110192395 B CN110192395 B CN 110192395B
Authority
CN
China
Prior art keywords
video data
complexity
determining
transcoding
transcoded
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
CN201780083935.2A
Other languages
English (en)
Other versions
CN110192395A (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.)
Snap Inc
Original Assignee
Snap Inc
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 Snap Inc filed Critical Snap Inc
Publication of CN110192395A publication Critical patent/CN110192395A/zh
Application granted granted Critical
Publication of CN110192395B publication Critical patent/CN110192395B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/179Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scene or a shot
    • 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/25Management 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N5/926Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation
    • H04N5/9261Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • H04W88/181Transcoding devices; Rate adaptation devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Studio Devices (AREA)

Abstract

本公开的实施例通过自动进行基于内容的客户端侧的视频数据转码来改进电子消息传递和成像软件和系统的功能。例如,可对具有复杂的运动或纹理的视频数据选择适当的转码配置。因此,当存在复杂的运动或纹理时,可以改善视频质量。

Description

客户端侧视频转码
优先权要求
本申请要求2017年6月14日提交的美国专利申请No.15/622,336的优先权权益,该美国专利申请要求2017年1月20日提交的美国临时申请No.62/448,465的优先权权益,两者的全部内容通过引用结合于此。
技术领域
本公开的实施例一般涉及用于自动视频转码的技术。更具体地,但不作为限制,本公开涉及用于基于视频的内容在便携式通信设备上视频进行转码的系统和方法。
背景技术
电子消息传递,特别是即时消息传递的普及持续增长。消息传递应用和设备可使用各种媒体(诸如文本、图像、声音录制或视频录制)在多个用户之间提供通信。例如,视频聊天允许两个或更多个人使用软件应用、设备和网络的组合来彼此传送图片图像和/或视频。
用于电子消息传递的许多设备被体现为便携式通信设备,诸如智能电话、平板计算机和其它可穿戴装置。这些设备可受到其组件的质量的限制,诸如照相机的分辨率、处理器速度、存储器大小等。为了保留空间,设备可使用音频和视频内容的可变比特率(VBR)编码以产生与同一数据的恒定比特率(CBR)编码文件相比更好的质量-空间比。然而,VBR需要更多时间进行编码,因为过程更复杂,并且某些硬件可能与VBR文件不兼容。因此,本领域仍然需要改进使用便携式通信设备的视频转码。
附图说明
附图中的各个附图仅示出了本公开的示例性实施例,并且不应被视为限制其范围。
图1是示出根据一些示例性实施例的联网系统的框图。
图2是示出根据一些示例性实施例的图像捕获系统的图。
图3是示出根据示例性实施例的关于图像捕获系统的进一步细节的框图。
图4是示出根据各种示例性实施例的可在消息传递服务器系统的数据库中存储的数据的示意图。
图5是示出根据一些示例性实施例的用于基于内容的客户端侧视频转码的示例性流程的框图。
图6是示出根据一些示例性实施例的用于基于内容的客户端侧视频转码的示例性方法的流程图。
图7示出了根据一些实施例的执行移动操作系统(例如,IOSTM、ANDROIDTM
Figure BDA0002134653760000021
Phone或其它移动操作系统)的示例性移动设备。
图8是示出根据一些示例性实施例的可在机器上安装的软件架构的示例的框图。
图9是根据示例性实施例的呈现采用计算机系统形式的机器的图形表示的框图,在该机器内可执行一组指令以使机器执行在此所讨论的任何方法。
在此提供的标题仅仅是为了方便,并不一定影响所用术语的范围或含义。
具体实施方式
以下的描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于解释的目的,阐述了许多特定细节以便提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员来说显然,也可以无需这些特定细节来实现本发明主题的实施例。通常,公知的指令实例、协议、结构和技术不必详细示出。
本公开的实施例涉及电子消息传递和成像软件和系统的功能的改进。在一些实施例中,但并非限制,本公开提出了用于基于内容的客户端侧视频转码的技术,可通过使用较低比特率对具有相对较好质量的视频进行转码来节省移动设备上的空间。基于内容的客户端侧视频转码也可在将转码视频上传到服务器时节省带宽。因此,基于内容的客户端侧视频转码通过保持视频质量和减少上传时间来改善用户体验。
此外,本公开的实施例使得基于内容的客户端视频转码能够在计算设备上使用。例如,由图像捕获设备(例如,数字相机)生成的视频可被分析并用作对视频进行转码的指导。在一些实施例中,当视频的内容被确定为复杂时(例如,具有超过预定阈值的运动或呈现详细的纹理),可调节比特率。
可根据一个或多个原始捕获帧与一个或多个编码帧之间的平均差异来选择预定转码配置的比特率(固定的或可变的)。预定转码配置的比特率可根据该差异是否超过预定阈值来识别,其中,小的差指示简单的运动或纹理,大的差指示复杂的运动或纹理。在这种实施例中,可使用帧之间的减法、均方误差、峰值信噪比或其它合适的差异度量来确定该差异。
A.社交消息传递客户端-服务器架构
以下提供了在其中可操作或以其它方式找到本发明的实施例的环境或系统的示例。然而,对于本领域技术人员来说显然,本发明主题的实施例可在没有这些特定细节的情况下实施。
图1是描绘根据一个实施例的网络系统100的网络图,网络系统100具有被配置用于通过网络交换数据的客户端-服务器架构。例如,网络系统100可以是消息传递系统,其中客户端在网络系统100内传送并交换数据。数据可涉及与网络系统100及其用户相关联的各种功能(例如,发送和接收文本和媒体通信,确定地理位置等)和方面(例如,传送通信数据,接收和发送通信会话的指示等)。虽然在此示出为客户端-服务器架构,但是其它实施例可以包括其它网络架构,诸如对等或分布式网络环境。
如图1中所示,网络系统100包括社交消息传递系统130。社交消息传递系统130通常基于三层架构,其包括接口层124、应用逻辑层126和数据层128。如相关计算机和因特网相关领域的技术人员所理解的,图1中所示的每个组件或引擎表示一组可执行软件指令和用于执行指令的相应硬件(例如,存储器和处理器),形成硬件实现的组件或引擎,并在执行指令时用作配置为执行一组特定功能的专用机器。为了避免不必要的细节模糊本发明的主题,从图1中省略了与传达对本发明主题的理解没有密切关系的各种功能组件和引擎。当然,附加的功能组件和引擎可以与社交消息传递系统(诸如图1中所示的社交消息传递系统)一起使用,以便于实现在此未具体描述的附加功能。此外,图1中描绘的各种功能组件和引擎可以驻留在单个服务器计算机或客户端设备上,或者可以采用各种布置分布在若干服务器计算机或客户端设备上。此外,尽管图1中社交消息传递系统130被描绘为三层架构,但是本发明的主题决不限于这种架构。
如图1中所示,接口层124包括接口组件(例如,web服务器)140,其接收来自各种客户端计算设备和服务器(诸如执行客户端应用112的客户端设备110和执行第三方应用122的第三方服务器120)的请求。响应于所接收的请求,接口组件140经由网络104向请求设备传送适当的响应。例如,接口组件140可接收诸如超文本传输协议(HTTP)请求或其它基于Web的应用编程接口(API)请求的请求。
客户端设备110可以执行传统的web浏览器应用或已经为特定平台开发以包括各种移动计算设备和移动特定操作系统(例如,IOSTM、ANDROIDTM
Figure BDA0002134653760000041
PHONE)中的任何一个的应用(也称为“app”)。此外,在一些示例实施例中,客户端设备110形成图像捕获系统160的全部或一部分,以使得图像捕获系统160的组件配置客户端设备110以执行关于图像捕获系统160的操作的一组特定功能。图像捕获系统160的一个示例相对于图2进一步描述。图像捕获系统160的另一个示例相对于图3进一步描述。
在示例中,客户端设备110执行客户端应用112。客户端应用112可以提供向用户106呈现信息和经由网络104进行通信以与社交消息传递系统130交换信息的功能。此外,在一些示例中,客户端设备110执行图像捕获系统160的功能以在视频流的捕获期间对视频流的图像分段并发送视频流(例如,采用基于分段的视频流的图像而修改的图像数据)。
每个客户端设备110可包括计算设备,该计算设备至少包括显示器和与网络104的通信能力以访问社交消息传递系统130、其它客户端设备和第三方服务器120。客户端设备110包括但不限于远程设备、工作站、计算机、通用计算机、因特网装置、手持设备、无线设备、便携式设备、可穿戴计算机、蜂窝或移动电话、个人数字助理(PDA)、智能电话、平板计算机、超极本、上网本、膝上型计算机、台式机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏机、机顶盒、网络PC、小型计算机等。用户106可以是人、机器或与客户端设备110交互的其它部件。在一些实施例中,用户106经由客户端设备110与社交消息传递系统130进行交互。用户106可以不是联网环境的一部分,但是可以与客户端设备110相关联。
如图1中所示,数据层128具有便于访问信息存储库或数据库134的数据库服务器132。数据库134是存储数据(诸如成员简档数据、社交图数据(例如,社交消息传递系统130的成员之间的关系)、图像修改偏好数据、可访问性数据和其它用户数据)的存储装置。
个人可以用社交消息传递系统130注册以成为社交消息传递系统130的成员。一旦注册,成员可在社交消息传递系统130上形成社交网络关系(例如,朋友、关注者或联系人),并与社交消息传递系统130所提供的广泛的应用进行交互。
应用逻辑层126包括各种应用逻辑组件150,应用逻辑组件150结合接口组件140用从数据层128中的各种数据源或数据服务取得的数据生成各种用户接口。各个应用逻辑组件150可用于实现与社交消息传递系统130的各种应用、服务和特征相关联的功能。例如,社交消息传递应用可以与应用逻辑组件150一起实现。社交消息传递应用向客户端设备110的用户提供消息传递机制,以发送和接收包括诸如图片和视频的文本和媒体内容的消息。客户端设备110可访问和查看指定时间段(例如,有限的或无限制的)的来自社交消息传递应用的消息。在示例中,特定消息对于消息接收者在预定义的时长(例如,由消息发送者指定的)是可访问的,该预定义的时长在特定消息首次被访问时开始。在预定义的时长过去之后,消息将被删除,并对于消息接收者不再是可访问的。当然,其它应用和服务可分别体现在它们自己的应用逻辑组件150中。
社交消息传递系统130可包括图像捕获系统160的至少一部分,该部分能够优先化针对所捕获的数据的图像修改器到客户端设备110的传递。此外,图像捕获系统160可识别和跟踪客户端设备110的用户对图像修改器的使用。类似地,客户端设备110包括如上所述的图像捕获系统160的一部分。在其它示例中,客户端设备110可包括整个图像捕获系统160。在客户端设备110包括图像捕获系统160的一部分(或全部)的情况下,客户端设备110可单独工作或与社交消息传递系统130协同工作,以提供在此描述的图像捕获系统160的功能。
在一些实施例中,社交消息传递系统130可以是短时消息系统,其能够实现短时通信,其中在诸如查看时间或查看完成的删除触发事件之后删除内容(例如,视频剪辑或图像)。在这种实施例中,设备使用在此在短时消息的生成、发送、接收或显示方面的任一方面的上下文中描述的各种组件。例如,实现图像捕获系统160的设备可捕获或以其它方式接收媒体内容项。该设备可用一个或多个图像修改器来修改媒体内容项,作为短时消息的内容生成的一部分。
在图2中,在各种实施例中,图1的图像捕获系统160可被实现为独立系统或者结合客户端设备110来实现,并且并不必然包括在社交消息传递系统130中。所示的图像捕获系统160包括接收器组件210、上下文组件220、识别组件230、顺序组件240、传感器组件250、接口组件260以及呈现组件270。组件210-270中的全部或一些例如经由网络耦合、共享存储器等彼此通信。组件210-270中的每个组件可被实现为单个组件、或者组合到其它组件中、或者进一步细分为多个组件。也可包括与示例性实施例无关的其它组件,但未示出。
图3是示出根据示例性实施例的关于图像捕获系统160的进一步细节的框图。具体地,所示的图像捕获系统160包括消息传递客户端应用300,该消息传递客户端应用300可包含多个子系统,即短时定时器系统302、集合管理系统304和注释系统306。
短时定时器系统302包括负责执行对消息传递客户端应用300和社交消息传递系统130所允许的内容的临时访问的硬件和/或软件单元。因此,短时定时器系统302包含多个定时器,这些定时器基于与消息或消息集合(例如,SNAPCHAT故事)相关联的时长和显示参数来选择性地显示消息和相关联的内容以及使能经由消息传递客户端应用300对消息和相关联的内容的访问。
集合管理系统304包括负责管理媒体的集合(例如,文本集合、图像视频集合和音频数据集合)的硬件和/或软件单元。在一些示例中,内容(例如消息,包括图像、视频、文本和音频)的集合可被组织成“事件库”或“事件故事”。这种集合可在指定时间段(诸如内容所涉及的事件的持续时间)可用。例如,与音乐会有关的内容可在该音乐会的持续时间内作为“故事”可用。集合管理系统304还可负责将提供特定集合的存在的通知的图标发布到消息传递客户端应用300的用户接口。
此外,集合管理系统304还包括允许集合管理器管理和策划特定内容集合的策展接口308。例如,策展接口308使事件组织者能够策展与特定事件有关的内容集合(例如,删除不适当的内容或冗余的消息)。此外,集合管理系统304采用机器视觉(或图像识别技术)和内容规则来自动策展内容集合。在某些实施例中,可以向用户支付报酬以将用户生成的内容包括在集合中。在这种情况下,策展接口308用于自动向这些用户付款以使用他们的内容。
注释系统306包括提供使用户能够注释或以其它方式修改或编辑与消息相关联的媒体内容的各种功能的硬件和/或软件单元。例如,注释系统306提供与针对由社交消息传递系统130处理的消息生成和发布图像修改器相关的功能。注释系统306例如基于客户端设备110的地理位置而可操作地将图像修改器(例如,SNAPCHAT滤镜)提供给消息传递客户端应用300。在另一示例中,注释系统306基于其它信息(诸如客户端设备110的用户的社交网络信息)而可操作地将图像修改器提供给消息传递客户端应用300。在实施例中,基于预定标准,诸如图像修改器是否是定义分类的规则集、是否指定使用要求、位置限制、赞助等,注释系统306可操作地组织用于消息传递客户端应用300的图像修改器的集合。
通常,图像修改器可包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标识、动画和声音效果。视觉效果的示例包括颜色叠加。音频和视觉内容或视觉效果可在客户端设备110应用于媒体内容项(例如,图像或视频)。例如,图像修改器包括可覆盖在由客户端设备110生成的照片/电子图像之上的文本。在另一示例中,图像修改器包括位置覆盖(例如,威尼斯海滩)的标识、直播事件的名称或商家覆盖的名称(例如,海滩咖啡馆)。在另一示例中,注释系统306使用客户端设备110的地理位置来识别包括客户端设备110的地理位置处的商家名称的图像修改器。图像修改器可包括与商家相关联的其它标记。图像修改器可存储在数据库134中并通过数据库服务器132访问。
在一个示例性实施例中,注释系统306提供发布平台,其使发布者能够在地图上选择地理位置并上传与所选的地理位置相关联的内容。发布者还可指定特定图像修改器应向消息传递客户端应用300的用户提供的情形。注释系统306生成包括上传的内容并将上传的内容与所选的地理位置相关联的图像修改器。
在另一示例性实施例中,注释系统306提供发布平台,其使商家能够经由投标过程选择与地理位置相关联的特定图像修改器。例如,注释系统306将最高投标商家的图像修改器与对应的地理位置相关联预定义的时间量。
图4是示出根据某些示例性实施例的可存储在社交消息传递系统130的数据库134中的数据400的示意图400。虽然所示的数据库134的内容包括多个表,但是应当理解,数据可存储在其它类型的数据结构中(例如,作为面向对象的数据库)。
在该示例中,数据库134包括存储在消息表414中的消息数据。实体表402存储实体数据,包括实体图404。在实体表402内维持有记录的实体可包括个体、公司实体、组织、对象、地点、事件等。无论何种类型,社交消息传递系统130存储其数据的任何实体都可以是认可的实体。每个实体被提供了唯一的标识符以及实体类型标识符(未示出)。
此外,实体图404存储关于实体之间的关系和关联的信息。仅作为示例,这种关系可以是社交的、专业的(例如在共同的公司或组织工作)、基于兴趣的或基于活动的。
数据库134还在注释表412中存储注释数据,例如采用图像修改器的形式(在此也称为滤镜)。在注释表412内存储了数据的滤镜与视频(其数据存储在视频表410中)和/或图像(其数据存储在图像表408中)相关联并应用于该视频和/或图像。在一个示例中,滤镜是在呈现给接收者用户期间被显示为覆盖在图像或视频上的媒体覆盖。滤镜可被组织,包括当发送用户在编写消息时,由消息传递客户端应用300向发送用户呈现的滤镜库中的滤镜的优先级列表。
滤镜可以是各种类型的。其它类型的滤镜包括地理位置滤镜(也称为地理滤镜),其可基于地理位置呈现给发送用户。例如,基于由客户端设备110的GPS单元确定的地理位置信息,消息客户端应用300可在用户接口内呈现特定于邻域或特殊位置的地理位置滤镜。另一种类型的滤镜是数据滤镜,其可基于客户端设备110在消息创建过程期间收集的其它输入或信息,由消息传递客户端应用300选择性地呈现给发送用户。数据滤镜的示例包括特定位置处的当前温度、发送用户行进的当前速度、客户端设备110的电池寿命、或当前时间。
可存储在图像表408内的其它注释数据是所谓的“镜头”数据。“镜头”可以是可添加到图像或视频的实时特殊效果和声音。
如上所述,视频表410存储视频数据,在一个实施例中,视频数据与在消息表414内维持有记录的消息相关联。类似地,图像表408存储与在实体表402中存储有消息数据的消息相关联的图像数据。实体表402可将来自注释表412的各种注释与存储在图像表408和视频表410中的各种图像和视频相关联。
故事表406存储关于被编译成集合(例如,SNAPCHAT故事或图库)的消息和相关联图像、视频或音频数据的集合的数据。特定集合的创建可由特定用户(例如,在实体表402中维持有记录的每个用户)启动。用户可采用该用户已创建并发送/广播的内容集合的形式创建“个人故事”。因此,消息传递客户端应用300的用户接口可包括用户可选择的图标,以使发送用户能够将特定内容添加到他或她的个人故事。
集合还可以构成“现场故事”,其是来自多个用户的内容的集合,可手动、自动或使用手动和自动技术的组合创建。例如,“现场故事”可构成来自不同位置和事件的用户提交的内容的策展流。其客户端设备启用了位置服务并在特定时间处于公共位置事件的用户可例如经由消息传递客户端应用300的用户接口而被呈现向特定的现场故事提供内容的选项。现场故事可由消息传递客户端应用300基于用户的位置而对用户识别。最终结果是从团体的角度讲述的“现场故事”。
另一种类型的内容集合被称为“位置故事”,其使得客户端设备110位于特定地理位置(例如,在学院或大学校园内)的用户能够对特定集合做出贡献。在一些实施例中,对位置故事的贡献可要求二度认证以验证最终用户属于特定组织或其它实体(例如,是大学校园中的学生)。
本公开的实施例可生成并呈现在电子消息/通信中使用的定制图像或视频,诸如短消息服务(SMS)或多媒体消息服务(MMS)文本和电子邮件。定制图像和视频还可以与在此讨论的SNAPCHAT故事、SNAPCHAT滤镜和短时消息传递功能结合使用。
在该示例中,数据库134还可存储图像和视频质量度量与转码配置之间的映射。转码配置可包括预定的固定或可变比特率,以在对被测量为具有对应的质量度量值的视频数据进行转码时使用。用于确定质量度量的算法的一些示例可包括客观度量和主观度量,诸如像素减法差值、均方误差(MSE)、峰值信噪比(PSNR)等。
B.基于内容的视频转码
关于生成和呈现在电子消息/通信内使用的定制图像或视频,本公开的实施例涉及用于基于内容的客户端侧视频转码的技术。此外,本公开的实施例使得基于内容的客户端侧视频转码能够在计算装置处使用。例如,采用图像捕获设备160生成的视频数据可被分析,并使用一个或多个度量来量化质量。一个或多个质量度量可用作对视频数据进行转码以供社交消息传递系统130使用的指导。
在各种实施例中,当视频的内容被确定为复杂时(例如,具有超过预定阈值的运动或呈现详细的纹理),可选择用于转码视频数据的适当比特率。这允许更高的比特率来更适当地捕获运动或纹理。当存在很少的运动或复杂的纹理时,可选择适当的比特率,以在转码时允许较低的比特率。
图5描绘了示出根据一些示例性实施例的用于基于内容的客户端侧视频转码的示例流程500的框图。在一些实施例中,图像捕获系统160在用户接口内呈现视场的预览作为视频数据。图像捕获系统160可使用户能够使用与用户接口的一个或多个用户交互来启动捕获视频数据。图像捕获系统160可使用从分析视频数据中搜集的信息以确定如何对视频数据进行转码以供社交消息传递系统130使用。在这些实施例中,图像捕获系统160尝试分析期望适当的转码配置的视频数据的内容。方法500的操作可由图像捕获系统160的组件执行,并为了说明的目的进行这样的描述。
在操作510中,图像捕获系统160捕获原始视频数据。图像捕获系统160可从各种源中捕获原始视频数据。在该上下文中,原始视频数据可包括采用任何格式的(诸如未压缩或压缩的)任何类型的捕获视频数据。在一些情况下,原始视频数据可以不包括由于压缩时的损失而造成的压缩伪像(compression artifact)。在一些示例性实施例中,原始视频数据由图像捕获系统160使用图像捕获设备来捕获。另外地或可替代地,原始视频数据可从另一个系统或设备接收。原始视频数据也在操作530中使用。各种实施例根据输入缓冲器来操作,该输入缓冲器保存将要被编码的预定数量的原始视频帧(例如,2-50帧)。
在操作520中,图像捕获系统160将原始视频数据编码为编码视频数据。编码视频数据的一些示例包括无损视频压缩的结果和有损视频压缩的结果。编码视频数据也在操作530中使用。各种实施例根据输出缓冲器来操作,该输出缓冲器保存预定数量的编码视频帧(例如,2-50帧)。
在操作530中,图像捕获系统160分析原始视频数据和编码视频数据。图像捕获系统160的组件进行一个或多个确定以量化视频数据的复杂度。图像捕获系统160可考虑原始视频数据如何与编码视频数据不同。原始视频数据如何与编码视频数据不同可指示在捕获设备的视场内的运动、提供错综复杂性或复杂的细节的纹理等。
原始视频数据与编码视频数据不同的方式可由系统使用以配置转码阶段。图像捕获系统160可选择在转码过程期间应用适当比特率(例如,固定的或可变的)的转码配置。这可对复杂的运动和纹理提供更高的比特率,从而提高转码视频数据的质量,而较小的比特率应用在具有相对简单的运动或纹理的视频上。在各种实施例中,总比特率可被设置上限以确保视频片段保持适合于供社交消息传递系统130使用。
因此,在操作540中,图像捕获系统160的组件可识别与给定视频质量度量对应的比特率(BR)映射。图像捕获系统160可提供映射以在操作550中使用。如上所述,BR映射可存储在数据库134中,允许在访问社交消息传递系统130的客户端上进行一致的基于内容的转码。
在操作550中,图像捕获系统160的组件可根据预定转码简档对编码视频数据进行转码,从而以预定比特率生成转码视频数据。在操作560中,图像捕获系统160的组件可将转码视频数据存储在存储设备中。
图6是示出根据一些示例性实施例的用于基于内容的客户端侧视频转码的示例性方法600的流程图。在一些实施例中,方法600可由图像捕获系统160执行。在其它实施例中,方法600可被实现为计算机可读指令,该指令在由计算机的处理器执行时使计算机执行方法600。各种实施例可采用在此描述的任何方式实施。另外,显而易见的是,某些操作可重复、重新排序,或者可在所描述的操作之间具有其它操作,但仍然根据在此描述的基于内容的客户端侧视频转码实施例起作用。
在方法600中,操作610包括接收图像捕获设备的视场的预览视频数据。预览数据可包括原始视频数据、压缩视频数据、编码视频数据等。预览视频数据可包括附加的覆盖、增强、处理等。预览视频数据可在执行方法600的一些或全部功能的计算装置的显示屏上显示。
操作620包括接收与显示预览数据的用户接口的第一用户交互。例如,在用户接口包括在其上显示预览视频数据的触摸屏的情况下,第一用户交互可包括触摸、滑动、手势等。操作630包括使用第一用户交互来启动视频数据的记录。在一个实施例中,用户触摸在用户接口内显示的记录按钮以启动视频消息的记录。后续的用户交互同样可通过触摸屏或用户接口的另一合适的输入设备来提供。
操作640包括将视场的原始视频数据编码为编码视频数据。原始视频数据可包括从各种源接收的未压缩视频数据。编码视频数据可包括未压缩或压缩视频数据。压缩视频数据可包括无损压缩伪像和有损压缩伪像。操作640可包括逐帧对视频数据进行编码、使用帧集合对视频数据进行编码等。
操作650包括使用原始视频数据和编码视频数据之间的比较来确定视频复杂度。在各种实施例中,图像捕获设备160可访问由捕获设备捕获的原始视频数据和由硬件或软件编码器编码的编码视频数据。图像捕获设备160可转换编码视频数据的一个或多个帧,以与原始视频数据的一个或多个对应帧进行比较。图像捕获设备160可将编码视频帧转换(例如,解码)为像素帧,并执行与原始视频数据的对应帧的一个或多个减法操作。
在一个方面,图像捕获设备160可从一个或多个差异度量中进行选择以量化原始视频数据与编码视频数据之间的差异。在一个实施例中,图像捕获设备160可执行减法操作。减法操作可导致两个帧之间的小的确定差异。该小的差异可指示视频数据的内容相对简单。例如,视频数据的内容可以是具有相对小的运动、很少的对象细节等的静态背景,从而具有简单的内容配置。在另一示例中,在编码视频数据中存在的压缩伪像可导致在减法后两个帧之间的大的差异。该大的差异可指示视频数据的内容相对复杂(例如,在编码过程期间有复杂的运动或详细的纹理干扰)。图像捕获设备160可对若干帧的差异求平均以确定视频数据的内容的复杂度。
在另一个实施例中,图像捕获设备160可确定原始视频数据与编码视频数据之间的均方误差(MSE)和/或峰值信噪比。较低的噪声比可指示视频数据的内容不包括任何复杂的运动或纹理。较高的噪声比可指示视频数据的内容确实包括运动或复杂的纹理。在另一个实施例中,图像捕获设备160可确定原始视频数据与编码视频数据之间的均方误差。较低的噪声比可指示视频数据的内容不包括任何复杂的运动或纹理。较高的噪声比可指示视频数据的内容确实包括运动或复杂的纹理。
操作660包括基于使用与所确定的视频复杂度对应的比特率对编码视频数据进行转码来生成转码视频数据。在各种实施例中,复杂度可被映射到一个或多个转码配置,每个转码配置具有预定的固定或可变比特率设置。图像捕获设备160可利用所确定的复杂度作为种子来对编码视频数据选择适当的转码配置。因此,图像捕获设备160可以优化具有较少运动和较简单纹理的视频的带宽使用。
图像捕获设备160可进一步基于内容复杂度来调节比特率,帮助在从各种用户上传到社交消息传递系统130的所有视频上实现一致的视频质量。通常,可对具有相对差的质量的视频消耗更多的比特率,而对具有相对好的质量的视频消耗较少的比特率。另外,图像捕获设备160可对比特率设置上限以确保总视频包在最大上传限制内。
C.模块、组件和逻辑
某些实施例在此被描述为包括逻辑或多个组件、模块或机制。组件可构成硬件组件。“硬件组件”是能够执行某些操作并可按某一物理方式配置或布置的有形单元。在各种示例性实施例中,计算机系统(例如,独立的计算机系统、客户端计算机系统、或服务器计算机系统)或计算机系统的硬件组件(例如,至少一个硬件处理器、处理器、或一组处理器)被软件(例如,应用或应用部分)配置为用于执行在此描述的某些操作的硬件组件。
在一些实施例中,硬件组件可机械地、电子地或其任何合适的组合实现。例如,硬件组件可包括被永久配置为执行某些操作的专用电路或逻辑。例如,硬件组件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可包括在通用处理器或其它可编程处理器内包含的软件。可以理解,机械地、在专用和永久配置的电路中、或在临时配置的电路(例如,由软件配置)中实现硬件组件的决定可考虑成本和时间来作出。
因此,短语“硬件组件”应被理解为包含有形实体,其是物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)的以按某个方式操作或执行在此所述的某些操作的实体。如在此所使用的,“硬件实现的组件”是指硬件组件。考虑硬件组件是临时配置(例如,编程)的实施例,每一个硬件组件不需要在任何一个时刻被配置或实例化。例如,如果硬件组件包括被软件配置为专用处理器的通用处理器,则通用处理器可在不同时间分别被配置为不同的专用处理器(例如,包括不同的硬件组件)。因此,软件可配置特定的处理器,以例如在一个时刻构成特定的硬件组件,并在另一不同时刻构成不同的硬件组件。
硬件组件可向其它硬件组件提供信息以及接收信息。因此,所描述的硬件组件可被认为是通信地耦接的。如果同时存在多个硬件组件,则可通过在两个或更多个硬件组件之间的信号传输(例如,在适当的电路和总线上)来实现通信。在其中多个硬件组件在不同时间被配置或实例化的实施例中,可例如通过在存储器结构中存储和取得多个硬件组件可访问的信息来实现这些硬件组件之间的通信。例如,一个硬件组件执行操作并将该操作的输出存储在与其通信耦接的存储器设备中。然后,另一硬件组件可在稍后访问该存储器设备以取得并处理所存储的输出。硬件组件也可发起与输入或输出设备的通信,并可在资源(例如,信息集合)上操作。
在此描述的示例性方法的各种操作可至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的处理器来执行。无论是临时配置的还是永久配置的,这种处理器构成用于执行在此描述的操作或功能的处理器实现的组件。如在此所使用的,“处理器实现的组件”是指使用处理器实现的硬件组件。
类似地,在此描述的方法可至少部分地是采用一个或多个特定处理器的处理器实现的,其中特定处理器是硬件的示例。例如,方法的至少一些操作可由处理器或处理器实现的组件执行。另外,处理器还可用以支持“云计算”环境中的相关操作的执行或作为“软件即服务”(SaaS)。例如,至少一些操作可由一组计算机(作为包括处理器的机器的示例)执行,这些操作可经由网络(例如,因特网)并经由适当的接口(例如,应用程序接口(API))来访问。
某些操作的执行可分布在处理器之间,不仅驻留在单个机器内,还在多个机器上部署。在一些示例性实施例中,处理器或处理器实现的组件位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其它示例性实施例中,处理器或处理器实现的组件分布在多个地理位置上。
D.应用
图7示出根据一些实施例的执行移动操作系统(例如,IOSTM、ANDROIDTM
Figure BDA0002134653760000161
Phone或其它移动操作系统)的示例性移动设备700。在一个实施例中,移动设备700包括可操作以从用户702接收触觉数据的触摸屏。例如,用户702可物理地触摸704移动设备700,并且响应于该触摸704,移动设备700可确定触觉数据,诸如触摸位置、触摸力、或手势动作。在各种示例性实施例中,移动设备700显示可操作以启动应用或以其它方式管理移动设备700的各个方面的主屏幕706(例如,IOSTM上的Springboard)。在一些示例性实施例中,主屏幕706提供诸如电池寿命、连接性或其它硬件状态的状态信息。用户702可通过触摸由相应的用户接口元素占据的区域来激活用户接口元素。这样,用户702与移动设备700的应用进行交互。例如,触摸由在主屏幕706中包括的特定图标占据的区域引起与该特定图标对应的应用的启动。
如图7所示,移动设备700可包括成像设备708。成像设备可以是照相机或耦接到移动设备700的能够捕获视频流或一个或多个连续图像的任何其它装置。成像设备708可由图像捕获系统160或可选择的用户接口元素来触发,以启动对视频流或连续帧的捕获,并将视频流或连续图像传递给图像捕获系统160以根据在本公开中描述的一个或多个方法来进行处理。
许多种类的应用(也称为“app”)可在移动设备700上执行,诸如本机应用(例如,采用Objective-C、Swift、或在IOSTM上运行的另一适当语言编程的应用,或者采用在ANDROIDTM上运行的Java编程的应用)、移动web应用(例如,采用超文本标记语言-5(HTML5)编写的应用)、或混合应用(例如,启动HTML5会话的本机外壳应用)。例如,移动设备700包括消息传递app、音频录制app、相机app、书籍阅读器app、媒体app、健身app、文件管理app、位置app、浏览器app、设置app、联系人app、电话呼叫app或其它app(例如,游戏app、社交网络app、生物度量监视app)。在另一示例中,移动设备700包括诸如
Figure BDA0002134653760000171
的社交消息传递app710,根据一些实施例,其允许用户交换包括媒体内容的短时消息。在该示例中,社交消息传递app710可合并在此描述的实施例的各方面。例如,在一些实施例中,社交消息传递应用包括由社交消息传递应用的用户创建的短时媒体图库。这些图库可以包括用户发表并可由用户的联系人(例如,“朋友”)查看的视频或图片。可替代地,公共图库可由社交消息传递应用的管理员创建,包括来自该应用的任何用户(并可由所有用户访问)的媒体。在又一个实施例中,社交消息传递应用可包括“杂志”特征,其包括发布者在社交消息传递应用的平台上生成的并可由任何用户访问的文章和其它内容。这些环境或平台中的任何一个都可用来实现本发明的概念。
在一些实施例中,短时消息传递系统可包括具有短时视频剪辑或图像的消息,这些短时视频剪辑或图像在诸如观看时间或观看完成的删除触发事件之后被删除。在这种实施例中,实现图像捕获系统160的设备可在短时视频剪辑被该设备捕获时识别、跟踪、提取并生成短时视频剪辑内的面部的表示,并使用短时消息系统将该短时视频剪辑发送到另一设备。
E.软件架构
图8是示出可在上述装置上安装的软件802的架构的框图800。图8仅仅是软件架构的非限制性示例,应当理解,许多其它架构可被实现以方便在此所述的功能。在各种实施例中,软件802由诸如图9的机器900的硬件来实现,该机器900包括处理器910、存储器930和I/O组件950。在该示例性架构中,软件802可被概念化为层堆栈,其中每一层可提供特定的功能。例如,软件802包括诸如操作系统804、库806、框架808和应用810的层。在操作上,根据一些实施例,应用810通过软件堆栈调用应用程序编程接口(API)调用812,并响应于API调用812而接收消息814。
在各种实施方式中,操作系统804管理硬件资源并提供公共服务。操作系统804包括例如内核820、服务822和驱动器824。根据一些实施例,内核820用作硬件与其它软件层之间的抽象层。例如,内核820提供存储器管理、处理器管理(例如调度)、组件管理、网络连接和安全设置等功能。服务822可为其它软件层提供其它公共服务。根据一些实施例,驱动器824负责控制底层硬件或与底层硬件接口连接。例如,驱动器824可包括显示驱动器、相机驱动器、
Figure BDA0002134653760000181
驱动器、闪存驱动器、串行通信驱动器(例如通用串行总线(USB)驱动器)、
Figure BDA0002134653760000191
驱动器、音频驱动器、电源管理驱动器等。
在一些实施例中,库806提供由应用810利用的低级公共基础架构。库806可包括系统库830(例如,C标准库),其可提供诸如存储器分配函数、字符串操作函数、数学函数等函数。此外,库806可包括API库832,诸如媒体库(例如,支持各种媒体格式(诸如运动图像专家组-4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))的呈现和操作的库)、图形库(例如,用于在显示器上的图形内容中渲染二维(2D)和三维(3D)的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供网页浏览功能的WebKit)等。库806也可包括各种各样的其它库834,以向应用810提供许多其它API。
根据一些实施例,框架808提供可由应用810利用的高级公共基础架构。例如,框架808提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架808可提供由应用810利用的大量其它API,其中一些API可特定于特定操作系统或平台。
在示例性实施例中,应用810包括主页应用850、联系人应用852、浏览器应用854、书籍阅读器应用856、位置应用858、媒体应用860、消息传递应用862、游戏应用864以及诸如第三方应用866的大量其它应用。根据一些实施例,应用810是执行在程序中定义的功能的程序。可采用各种编程语言来创建采用各种方式构造的应用810,诸如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C或汇编语言)。在具体示例中,第三方应用866(例如,由除了特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在移动操作系统(诸如IOSTM、ANDROIDTM
Figure BDA0002134653760000192
PHONE或其它移动操作系统)上运行的移动软件。在该示例中,第三方应用866可调用由操作系统804提供的API调用812以便于执行在此描述的功能。
F.示例性机器架构和机器可读介质
图9是示出根据一些实施例能够从机器可读存储介质(例如,非暂态处理器可读存储介质或处理器可读存储设备)读取指令(例如,处理器可执行指令)并执行在此讨论的任何方法的机器900的组件的框图。具体地,图9示出了采用计算机系统的示例性形式的机器900的示意图,其中可执行用于使机器900执行在此讨论的任何方法的指令916(例如,软件、程序、应用、小程序、app或其它可执行代码)。在替代实施例中,机器900用作独立的设备或者可耦接(例如,网络连接)到其它机器。在联网部署中,机器900可作为服务器-客户端网络环境中的服务器机器或客户端机器操作,或者作为对等(或分布式)网络环境中的对等机器。机器900可包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电)、其它智能设备、网络设备、网络路由器、网络交换机、网络桥接器、或者任何能够顺序地或以其它方式执行指定机器900将采取的动作的指令916的机器。进一步地,虽然只示出单个机器900,但是,术语“机器”也可被认为包括单独或联合执行指令916以执行在此所讨论的任何方法的机器900的集合。
在各种实施例中,机器900包括可被配置成经由总线902彼此通信的处理器910、存储器930和I/O组件950。在示例性实施例中,处理器910(例如,中央处理单元(CPU)、简化指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一个处理器、或其任何合适的组合)包括例如可执行指令916的处理器912和处理器914。术语“处理器”旨在包括可包括可同时执行指令的两个或更多独立处理器(也称为“核”)的多核处理器。尽管图9示出了多个处理器910,但是,机器900可包括具有单核的单个处理器、具有多核的单个处理器(例如,多核处理器)、多个具有单核的处理器、多个具有多核的处理器或其任何组合。
根据一些实施例,存储器930包括经由总线902可由处理器910访问的主存储器932、静态存储器934和存储单元936。存储单元936可包括机器可读介质938,在该机器可读介质938上存储了体现在此所述的任何方法或功能的指令916。指令916也可在由机器900执行期间完全或至少部分地驻留在主存储器932内、静态存储器934内、处理器910中的至少一个内(例如,在处理器的高速缓冲存储器内)或任何合适的组合。因此,在各种实施例中,主存储器932、静态存储器934和处理器910被认为是机器可读介质938。
如在此所使用的,术语“存储器”是指能够临时或永久地存储数据的机器可读介质938,并可被认为包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪存和高速缓存。虽然机器可读介质938在示例性实施例中被示出为单个介质,但术语“机器可读介质”应当被认为包括能够存储指令916的单个介质或多个介质(例如,集中式或分布式数据库、或相关联的高速缓存和服务器)。术语“机器可读介质”也应被认为包括能够存储由机器(例如,机器900)执行的指令(例如,指令916)的任何介质或多个介质的组合,以使得这些指令在由机器900的处理器(例如,处理器910)执行时使机器900执行在此描述的任何方法。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。因此,术语“机器可读介质”应被认为包括但不限于采用固态存储器(例如,闪存)、光学介质、磁性介质、其它非易失性存储器(例如,可擦除可编程只读存储器(EPROM))或其任何合适的组合的形式的数据存储库。术语“机器可读介质”特别排除非法定信号本身。
I/O组件950包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的各种各样的组件。通常,应当理解,I/O组件950可包括图9中未示出的许多其它组件。仅为了简化以下的讨论,I/O组件950根据功能进行分组,该分组并不是限制性的。在各种示例性实施例中,I/O组件950包括输出组件952和输入组件954。输出组件952包括视觉组件(例如,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)的显示器、投影仪、或阴极射线管(CRT))、听觉组件(例如扬声器)、触觉组件(例如振动电机)、其它信号发生器等等。输入组件954包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘、或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指示仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其它触觉输入组件)、音频输入组件(例如,麦克风)等。
在一些另外的示例性实施例中,I/O组件950还包括生物度量组件956、运动组件958、环境组件960或定位组件962。例如,生物度量组件956包括检测表达(例如,手部表达、面部表情、声音表达、身体姿势、或嘴部姿势)、测量生物信号(例如,血压、心率、体温、汗水或脑电波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件958包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件960包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、用于为了安全而检测危险气体的浓度或测量大气中的污染物的气体检测传感器)、或其它可提供与周围物理环境对应的指示、测量或信号的组件。定位组件962包括位置传感器组件(例如,全球定位系统(GPS)接收器组件)、高度传感器组件(例如,高度计或检测可从中推导出高度的空气压力的气压计)、朝向传感器组件(例如,磁力计)等。
通信可使用各种各样的技术来实现。I/O组件950可包括用于将机器900分别经由耦接器982和耦接器972耦接到网络980或设备970的通信组件964。例如,通信组件964包括网络接口组件或与网络980接口连接的另一个合适设备。在另一示例中,通信组件964包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、
Figure BDA0002134653760000231
组件(例如,低功耗
Figure BDA0002134653760000232
)、
Figure BDA0002134653760000233
组件和经由其它模式提供通信的其它通信组件。设备970可以是另一机器或各种各样的外围设备(例如,经由通用串行总线(USB)耦接的外围设备)中的任何一个。
另外,在一些实施例中,通信组件964检测标识符或包括可操作以检测标识符的组件。例如,通信组件964包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、数据矩阵、数字图形、最大码、PDF417、超码、统一商业代码缩减空格符号(UCC RSS)-2D条形码的多维条形码、和其它光学代码)、声学检测组件(例如,用于识别带标记的音频信号的麦克风)、或上述的任何合适的组合。此外,可经由通信组件964来导出各种信息,诸如经由因特网协议(IP)地理定位的位置、经由
Figure BDA0002134653760000235
信号三角测量的位置、经由检测可指示特定位置的
Figure BDA0002134653760000236
或NFC信标信号的位置等。
G.传输介质
在各种示例性实施例中,网络980的部分可以是自组织网络、内联网、外部网、虚拟专用网(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、
Figure BDA0002134653760000234
网络、另一种类型的网络、或两个以上这种网络的组合。例如,网络980或网络980的一部分可包括无线或蜂窝网络,耦接器982可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接、或另一种类型的蜂窝或无线耦接。在该示例中,耦接器982可实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线业务(GPRS)技术、GSM演进增强型数据速率(EDGE)技术、包括第四代(4G)无线网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准的第三代合作伙伴计划(3GPP)、由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。
在示例性实施例中,指令916使用传输介质经由网络接口设备(例如,在通信组件964中包括的网络接口组件)并利用多个公知的传输协议(例如,超文本传输协议(HTTP))中的任何一个在网络980上发送或接收。类似地,在其它示例性实施例中,指令916使用传输介质经由到装置970的耦接器972(例如,对等耦接)发送或接收。术语“传输介质”应被认为包括任何能够存储、编码或携带由机器900执行的指令916的无形介质,并且包括数字或模拟通信信号或其它无形介质以便于这种软件的通信。
此外,机器可读介质938是非暂态的(换句话说,不具有任何暂时信号),因为机器可读介质938不包含传播信号。然而,将机器可读介质938标记为“非暂态”不应被解释为意味着介质不能够移动;介质应被认为是能够从一个物理位置运送到另一物理位置。此外,由于机器可读存储介质938是有形的,因此,介质可被认为是机器可读装置。
H.语言
在整个说明书中,多个实例可实现被描述为单个实例的组件、操作或结构。虽然方法的各个操作被示出和描述为单独的操作,但各个操作也可同时执行,并且不需要按所示的顺序执行操作。在示例性配置中作为单独组件呈现的结构和功能可被实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可被实现为分离的多个组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。
虽然已经参考具体示例性实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的这样的实施例在此可单独地或集体地由术语“发明”指代,这仅仅为了方便,并且并不旨在将本申请的范围限制于任何单个公开内容或发明构思,如果事实上公开了多于一个的发明构思。
在此示出的实施例被足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用和从中导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。
如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,可以为在此所述的资源、操作或结构提供多个实例作为单个实例。此外,各种资源、操作、组件、引擎和数据存储之间的边界是一定程度上任意的,并且在特定说明性配置的上下文中示出了特定的操作。可以设想功能的其它分配,并且这些其它分配可以落入本公开的各种实施例的范围内。通常,作为示例性配置中的分离的资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为分离的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

Claims (18)

1.一种用于转码视频的系统,包括:
处理器;
照相机,其耦合到所述处理器;以及
存储器,其耦合到所述处理器并存储指令,所述指令在由所述处理器执行时使所述系统执行以下操作,包括:
使所述照相机捕获在消息传递系统中使用的视频数据;
对所捕获的视频数据进行编码以生成编码视频数据;
基于所捕获的视频数据的至少一部分与所述编码视频数据的至少一部分之间的比较,确定所述照相机的视场内的复杂度,其中,确定所述照相机的所述视场内的所述复杂度包括:确定所捕获的视频数据中的多个帧与所述编码视频数据中的多个帧之间的平均差异;以及
基于所确定的复杂度和所述编码视频数据,生成转码视频数据,
其中,生成所述转码视频数据包括:选择将比特率应用于所述转码视频数据的转码配置,
其中,基于视频质量度量与所述转码配置之间的预先定义的映射,选择被应用于所述转码视频数据的所述比特率以对应于视频质量度量,
其中,所述预先定义的映射被存储在数据库内,并经由所述数据库可访问,以提供关于所述消息传递系统的消息传递客户端的一致的视频转码。
2.根据权利要求1所述的系统,其中,确定所述照相机的所述视场内的所述复杂度包括:检测所述视场内的运动。
3.根据权利要求2所述的系统,其中,确定所述照相机的所述视场内的所述复杂度包括:确定所检测的运动超过预定阈值。
4.根据权利要求1所述的系统,其中,确定所述照相机的所述视场内的所述复杂度包括:检测所述视场内的纹理。
5.根据权利要求1所述的系统,其中,确定所述照相机的所述视场内的所述复杂度包括:确定所捕获的视频数据中的多个帧与所述编码视频数据中的多个帧之间的平方误差。
6.根据权利要求1所述的系统,其中,确定所述照相机的所述视场内的所述复杂度包括:确定所捕获的视频数据中的多个帧与所述编码视频数据中的多个帧之间的峰值信噪比。
7.根据权利要求1所述的系统,其中,所捕获的视频数据是未压缩的。
8.根据权利要求1所述的系统,其中,所捕获的视频数据是压缩的。
9.根据权利要求1所述的系统,其中,所述系统从与所述系统通信的设备接收附加视频数据。
10.根据权利要求1所述的系统,其中,被应用于所述转码视频数据的所述比特率是以下之一:固定比特率、或可变比特率。
11.根据权利要求1所述的系统,其中,被应用于所述转码视频数据的所述比特率有上限。
12.根据权利要求1所述的系统,其中,生成所述转码视频数据包括:根据预先确定的转码简档,对所述编码视频数据进行转码以按预定比特率生成转码视频数据。
13.根据权利要求1所述的系统,还包括:
显示屏,其耦合到所述处理器,其中,所述操作还包括在所述显示屏上呈现所述视频数据。
14.根据权利要求13所述的系统,其中,还包括:
输入设备,
其中,所述操作还包括:经由所述输入设备从所述系统的用户接收用于启动所述视频数据的记录的用户交互。
15.根据权利要求1所述的系统,其中,使用以下中的一个或多个来执行对所捕获的视频数据的编码:逐帧编码,以及帧集合的编码。
16.根据权利要求1所述的系统,其中,确定所述照相机的所述视场内的所述复杂度包括:将视频帧编码为像素帧,以及执行与所捕获的视频数据的对应帧的一个或多个减法操作。
17.一种计算机实现的方法,包括:
由计算机系统使被耦合到所述计算机系统的照相机捕获在消息传递系统中使用的视频数据;
由所述计算机系统对所捕获的视频数据进行编码以生成编码视频数据;
基于所捕获的视频数据的至少一部分与所述编码视频数据的至少一部分之间的比较,由所述计算机系统确定所述照相机的视场内的复杂度,其中,确定所述照相机的所述视场内的所述复杂度包括:确定所捕获的视频数据中的多个帧与所述编码视频数据中的多个帧之间的平均差异;以及
由所述计算机系统基于所确定的复杂度和所述编码视频数据,生成转码视频数据,
其中,生成所述转码视频数据包括:选择将比特率应用于所述转码视频数据的转码配置,
其中,基于视频质量度量与所述转码配置之间的预先定义的映射,选择被应用于所述转码视频数据的所述比特率以对应于视频质量度量,
其中,所述预先定义的映射被存储在数据库内,并经由所述数据库可访问,以提供关于所述消息传递系统的消息传递客户端的一致的视频转码。
18.一种存储指令的非暂态计算机可读介质,所述指令在由计算机系统执行时使所述计算机系统执行以下操作,包括:
使被耦合到所述计算机系统的照相机捕获在消息传递系统中使用的视频数据;
对所捕获的视频数据进行编码以生成编码视频数据;
基于所捕获的视频数据的至少一部分与所述编码视频数据的至少一部分之间的比较,确定所述照相机的视场内的复杂度,其中,确定所述照相机的所述视场内的所述复杂度包括:确定所捕获的视频数据中的多个帧与所述编码视频数据中的多个帧之间的平均差异;以及
基于所确定的复杂度和所述编码视频数据,生成转码视频数据,
其中,生成所述转码视频数据包括:选择将比特率应用于所述转码视频数据的转码配置,
其中,基于视频质量度量与所述转码配置之间的预先定义的映射,选择被应用于所述转码视频数据的所述比特率以对应于视频质量度量,
其中,所述预先定义的映射被存储在数据库内,并经由所述数据库可访问,以提供关于所述消息传递系统的消息传递客户端的一致的视频转码。
CN201780083935.2A 2017-01-20 2017-12-29 客户端侧视频转码 Active CN110192395B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762448465P 2017-01-20 2017-01-20
US62/448,465 2017-01-20
US15/622,336 2017-06-14
US15/622,336 US11019349B2 (en) 2017-01-20 2017-06-14 Content-based client side video transcoding
PCT/US2017/068902 WO2018136219A1 (en) 2017-01-20 2017-12-29 Client side video transcoding

Publications (2)

Publication Number Publication Date
CN110192395A CN110192395A (zh) 2019-08-30
CN110192395B true CN110192395B (zh) 2021-07-06

Family

ID=62906857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780083935.2A Active CN110192395B (zh) 2017-01-20 2017-12-29 客户端侧视频转码

Country Status (5)

Country Link
US (3) US11019349B2 (zh)
EP (2) EP3571847B1 (zh)
KR (1) KR102356924B1 (zh)
CN (1) CN110192395B (zh)
WO (1) WO2018136219A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079054A1 (en) * 2010-03-24 2012-03-29 General Instrument Corporation Automatic Memory Management for a Home Transcoding Device
US10848537B2 (en) * 2016-11-15 2020-11-24 Google Llc Leveraging aggregated network statistics for enhancing quality and user experience for live video streaming from mobile devices
US11019349B2 (en) 2017-01-20 2021-05-25 Snap Inc. Content-based client side video transcoding
CN106993238A (zh) * 2017-04-14 2017-07-28 网宿科技股份有限公司 基于Html5的音视频播放方法及装置、音视频直播方法及系统
JP7161103B2 (ja) * 2018-10-25 2022-10-26 日本電信電話株式会社 通信システム、ネットワーク側装置、伝送機能変更方法及びプログラム
US11438633B2 (en) * 2020-06-05 2022-09-06 Tencent America LLC Temporal de-noising for video

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295614B1 (en) * 2000-09-08 2007-11-13 Cisco Technology, Inc. Methods and apparatus for encoding a video signal
CN103379335A (zh) * 2012-04-19 2013-10-30 Vixs系统公司 基于方差度量对视频特征的检测
CN105187835A (zh) * 2014-05-30 2015-12-23 阿里巴巴集团控股有限公司 基于内容的自适应视频转码方法及装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978773A (en) 1995-06-20 1999-11-02 Neomedia Technologies, Inc. System and method for using an ordinary article of commerce to access a remote computer
EP0814611B1 (de) 1996-06-17 2002-08-28 Siemens Aktiengesellschaft Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
US7173651B1 (en) 1998-06-02 2007-02-06 Knowles Andrew T Apparatus and system for prompt digital photo delivery and archival
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US7161633B2 (en) * 2001-01-10 2007-01-09 Koninklijke Philips Electronics N.V. Apparatus and method for providing a usefulness metric based on coding information for video enhancement
US6950561B2 (en) * 2001-01-10 2005-09-27 Koninklijke Philips Electronics N.V. Method and system for sharpness enhancement for coded video
US20100098702A1 (en) 2008-09-16 2010-04-22 Longgui Wang Method of treating androgen independent prostate cancer
US6862372B2 (en) * 2001-12-27 2005-03-01 Koninklijke Philips Electronics N.V. System for and method of sharpness enhancement using coding information and local spatial features
US7031388B2 (en) * 2002-05-06 2006-04-18 Koninklijke Philips Electronics N.V. System for and method of sharpness enhancement for coded digital video
AU2003267275A1 (en) * 2002-05-08 2003-11-11 Aran Communications Limited Telecommunications network subscriber experience measurement
US7411493B2 (en) 2003-03-01 2008-08-12 User-Centric Ip, L.P. User-centric event reporting
CA2536391A1 (en) * 2003-08-21 2005-03-10 Vidiator Enterprises Inc. Quality of experience (qoe) metrics for wireless communication networks
US20050099492A1 (en) * 2003-10-30 2005-05-12 Ati Technologies Inc. Activity controlled multimedia conferencing
US7535890B2 (en) 2003-12-18 2009-05-19 Ayalogic, Inc. System and method for instant VoIP messaging
US7671893B2 (en) 2004-07-27 2010-03-02 Microsoft Corp. System and method for interactive multi-view video
US20060170778A1 (en) * 2005-01-28 2006-08-03 Digital News Reel, Llc Systems and methods that facilitate audio/video data transfer and editing
US8693537B2 (en) * 2005-03-01 2014-04-08 Qualcomm Incorporated Region-of-interest coding with background skipping for video telephony
US7724972B2 (en) * 2005-03-01 2010-05-25 Qualcomm Incorporated Quality metric-biased region-of-interest coding for video telephony
US8768084B2 (en) * 2005-03-01 2014-07-01 Qualcomm Incorporated Region-of-interest coding in video telephony using RHO domain bit allocation
WO2007023494A2 (en) 2005-08-22 2007-03-01 Triplay Communications Ltd. Messaging system and method
EP1978743B1 (en) 2007-04-02 2020-07-01 Vestel Elektronik Sanayi ve Ticaret A.S. A method and apparatus for transcoding a video signal
USRE47534E1 (en) 2007-04-23 2019-07-23 Ramot At Tel Aviv University Ltd. System, method and a computer readable medium for providing an output image
JP2009182889A (ja) * 2008-01-31 2009-08-13 Toshiba Corp 再符号化装置および再符号化方法
US8718135B2 (en) * 2008-09-19 2014-05-06 The Hong Kong University Of Science And Technology Method and system for transcoding based robust streaming of compressed video
US20100097473A1 (en) 2008-10-20 2010-04-22 Johnson Controls Technology Company Device for connecting video cameras to networks and clients
WO2011101784A1 (en) 2010-02-16 2011-08-25 Tigertext Inc. A messaging system apparatuses circuits and methods of operation thereof
US9832540B2 (en) 2010-12-15 2017-11-28 Hulu, LLC Method and apparatus for hybrid transcoding of a media program
US9246741B2 (en) * 2012-04-11 2016-01-26 Google Inc. Scalable, live transcoding with support for adaptive streaming and failover
AU2014289922B2 (en) * 2013-07-11 2017-08-31 Dejero Labs Inc. Systems and methods for transmission of data streams
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US10182257B2 (en) 2014-07-31 2019-01-15 Clipchamp Ip Pty Ltd Client-side video transcoding and processing
US20160234496A1 (en) 2015-02-09 2016-08-11 Qualcomm Incorporated Near visually lossless video recompression
US10491911B2 (en) 2015-02-20 2019-11-26 Harmonic, Inc. Transcoding on-the-fly (TOTF)
US9560393B2 (en) * 2015-02-20 2017-01-31 Disney Enterprises, Inc. Media processing node
US10255946B1 (en) * 2015-06-25 2019-04-09 Amazon Technologies, Inc. Generating tags during video upload
US9860569B1 (en) * 2015-10-05 2018-01-02 Amazon Technologies, Inc. Video file processing
US10264314B2 (en) * 2016-04-29 2019-04-16 Pccw Vuclip (Singapore) Pte. Ltd. Multimedia content management system
US10327043B2 (en) * 2016-07-09 2019-06-18 N. Dilip Venkatraman Method and system for displaying interactive questions during streaming of real-time and adaptively assembled video
US10454987B2 (en) * 2016-10-28 2019-10-22 Google Llc Bitrate optimization for multi-representation encoding using playback statistics
US11019349B2 (en) 2017-01-20 2021-05-25 Snap Inc. Content-based client side video transcoding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295614B1 (en) * 2000-09-08 2007-11-13 Cisco Technology, Inc. Methods and apparatus for encoding a video signal
CN103379335A (zh) * 2012-04-19 2013-10-30 Vixs系统公司 基于方差度量对视频特征的检测
CN105187835A (zh) * 2014-05-30 2015-12-23 阿里巴巴集团控股有限公司 基于内容的自适应视频转码方法及装置

Also Published As

Publication number Publication date
EP4236319A3 (en) 2023-10-25
WO2018136219A1 (en) 2018-07-26
US20180213243A1 (en) 2018-07-26
EP3571847A1 (en) 2019-11-27
US20210385470A1 (en) 2021-12-09
CN110192395A (zh) 2019-08-30
US20230396785A1 (en) 2023-12-07
EP3571847B1 (en) 2023-07-26
US11778209B2 (en) 2023-10-03
US11019349B2 (en) 2021-05-25
EP4236319A2 (en) 2023-08-30
KR102356924B1 (ko) 2022-02-04
KR20190107081A (ko) 2019-09-18

Similar Documents

Publication Publication Date Title
CN110192395B (zh) 客户端侧视频转码
US11710323B2 (en) Determining a mood for a group
KR102521790B1 (ko) 비동기 미디어 콘텐츠를 갖는 대화형 메시지들의 생성
KR102466890B1 (ko) 고속 비디오 캡처 및 센서 조절
US11716301B2 (en) Generating interactive messages with asynchronous media content
KR102196486B1 (ko) 콘텐츠 모음 네비게이션 및 오토포워딩
CN109716781B (zh) 用于视频流的实时绘制的系统、装置、介质和方法
US11677702B2 (en) Automatically selecting an ephemeral message availability
CN116342622A (zh) 视频流的图像分割和修改
US10133918B1 (en) Generating a mood log based on user images
KR102657053B1 (ko) 옵트아웃 인터스티셜을 이용한 미디어 컬렉션 탐색
US11450085B2 (en) Binarization of a video stream
US11087513B1 (en) Real-time bokeh effect
US11350175B2 (en) Multi-video capture system

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