视频分享方法、电子设备、存储介质和程序产品与流程

文档序号:31369482发布日期:2022-09-02 19:51阅读:75来源:国知局
视频分享方法、电子设备、存储介质和程序产品与流程

1.本技术涉及终端技术领域,具体地涉及一种视频分享方法、电子设备、存储介质和程序产品。


背景技术:

2.现有技术中存在多种不同的视频格式,当应用程序需要分享视频时,安卓系统可判断应用程序是否支持打开hevc(high efficiency video coding,高效率视频编码)格式的视频,若安卓系统确定应用程序不支持打开hevc格式的视频,则可以将该视频转码为大多数应用程序均支持打开的avc格式的转码文件,进而将转码文件发送至应用程序,使得应用程序可以打开并分享avc格式的转码文件。
3.若上述hevc格式的视频被重命名,由于重命名后得到的视频与原视频名称不同,因此若应用程序需要分享该重命名后的视频,安卓系统判断出应用程序不支持hevc格式的视频后,会先对该重命名的视频进行转码,进而将转码文件发送至应用程序。但实际上,重命名后的视频与原视频仅有视频名称不同,内容完全相同,对两者进行转码后得到的转码文件的内容也是完全相同的,为了使得应用程序能够分享重命名后的视频,安卓系统必须再进行一次视频转码,从而造成了视频重复转码的问题,重复进行视频转码会造成电子设备计算资源的浪费。


技术实现要素:

4.有鉴于此,本技术提供一种视频分享方法、电子设备、存储介质和程序产品,以防止重复进行视频转码造成电子设备计算资源的浪费。
5.第一方面,本技术实施例提供了一种视频分享方法,应用于电子设备,所述方法包括:
6.接收针对目标视频的分享操作,其中,所述分享操作用于:指示通过指定的应用程序分享所述目标视频,所述目标视频是对原视频进行重命名后得到的视频;
7.响应所述分享操作,基于所述电子设备记录的第一对应关系,根据目标视频的视频存储路径,查找所述目标视频对应的目标转码文件的第一存储路径,其中,所述第一对应关系为:视频的视频存储路径与该视频对应的转码文件的存储路径之间的对应关系,所述第一存储路径为:所述原视频对应的转码视频的存储路径;
8.访问所述第一存储路径,确定所述目标转码文件是否存在;
9.确定所述目标转码文件存在,向所述应用程序发送所述目标转码文件,对所述目标转码文件进行分享。
10.本技术的一个实施例中,所述方法还包括:
11.对第一视频进行重命名处理后,获得第一视频对应的转码文件的存储路径;
12.记录重命名后视频的视频存储路径与所获得的存储路径之间的对应关系,作为第一对应关系。
13.本技术的一个实施例中,所述目标视频为:
14.对原视频直接进行重命名处理得到的视频;
15.或
16.对原视频进行复制,并对复制得到的视频进行重命名处理得到的副本视频。
17.本技术的一个实施例中,所述响应所述分享操作,基于所述电子设备记录的第一对应关系,根据目标视频的视频存储路径,查找所述目标视频对应的目标转码文件的第一存储路径,包括:
18.响应所述分享操作,在确定需要对所述目标视频进行转码的情况下,基于所述电子设备记录的第一对应关系,根据目标视频的视频存储路径,查找所述目标视频对应的目标转码文件的第一存储路径。
19.本技术的一个实施例中,所述电子设备中记录有转码文件的存储路径与该转码文件的引用数之间的第二对应关系,所述引用数表示:该转码文件对应的转码前的视频的数量,所述方法还包括:
20.接收针对第二视频的处理操作;
21.若所述处理操作指示复制第二视频,则在对第二视频进行复制并重命名得到副本视频后,获取第二视频对应的转码文件的第二存储路径,在与所述第二存储路径存在第二对应关系的引用数的基础上加1;
22.若所述处理操作指示删除第二视频,则在第二视频被删除后,获取第二视频对应的转码文件的第二存储路径,在与所述第二存储路径存在第二对应关系的引用数的基础上减1。
23.本技术的一个实施例中,在所述获取第二视频对应的转码文件的第二存储路径,在所述第二存储路径对应的引用数的基础上减1之后,所述方法还包括:
24.若调整后的引用数为0,则基于第二对应关系,删除所述引用数所对应的存储路径处存储的转码文件。
25.本技术的一个实施例中,所述获取第二视频对应的转码文件的第二存储路径,包括:
26.基于所记录的第一对应关系,查找所述第二视频的视频存储路径对应的转码文件的存储路径,作为第二存储路径。
27.本技术的一个实施例中,所述第二对应关系存储于向量数组中,其中,所述向量数组中的每一项数据为键值对key-value的格式,key为转码文件的存储路径,value为转码文件的引用数。
28.第二方面,本技术实施例提供了一种电子设备,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被所述处理器执行时,触发所述电子设备执行第一方面任一项所述的步骤。
29.第三方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面任意一项所述的方法。
30.第四方面,本技术实施例提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行第一方面任意一项所
述的方法。
31.采用本技术实施例提供的技术方案,在接收到对目标视频的分享操作后,若确定需要对目标视频进行转码,则可以从第一对应关系中查找目标视频对应的目标转码文件的第一存储路径,目标转码文件是对原视频进行转码后得到的文件,由于目标视频是对原视频进行重命名后得到的,所以上述目标转码文件同样可以作为目标视频的转码文件。基于第一存储路径确定目标转码文件是否存在,若目标转码文件存在,则可以直接向应用程序发送上述目标转码文件,使得应用程序可以对目标转码文件进行分享。由此可见,在应用程序需要分享重命名后得到的目标文件时,若电子设备中存在原视频的目标转码文件,则应用程序可以直接分享目标转码文件,不需要再对目标视频进行重复的转码,从而可以防止重复进行视频转码造成电子设备计算资源的浪费。
附图说明
32.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
33.图1为本技术实施例提供的一种电子设备的示意图;
34.图2为本技术实施例提供的一种电子设备的软件结构框图;
35.图3a为本技术实施例提供的第一种视频分享应用场景示意图;
36.图3b为本技术实施例提供的第二种视频分享应用场景示意图;
37.图4为本技术实施例提供的第三种视频分享应用场景示意图;
38.图5为本技术实施例提供的一种视频分享方法的流程示意图;
39.图6为本技术实施例提供的第一种转码文件管理方法的流程示意图;
40.图7a为本技术实施例提供的一种复制视频应用场景示意图;
41.图7b为本技术实施例提供的一种删除视频应用场景示意图
42.图8为本技术实施例提供的第二种转码文件管理方法的流程示意图;
43.图9为本技术实施例提供的一种电子设备内部软件的调用时序图。
具体实施方式
44.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。
45.为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一指令和第二指令是为了区分不同的用户指令,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
46.需要说明的是,本技术中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在
以具体方式呈现相关概念。
47.本技术实施例可应用于平板电脑、个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)、智能手表、上网本、可穿戴电子设备、增强现实技术(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、车载设备、智能汽车、机器人、智能眼镜、智能电视等电子设备中。
48.需要指出的是,在一些可能的实现方式中,电子设备也可能称为终端设备、用户设备(user equipment,ue)等,本技术实施例对此不作限制。
49.如图1所示,图1为本技术实施例提供的一种电子设备的示意图,图1所示的电子设备可以包括处理器110、外部存储器接口120、内部存储器121、通用串行总线(universal serial bus,usb)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、扬声器170a、受话器170b、麦克风170c、耳机接口170d、传感器模块180、按键190、马达191、指示器192、摄像头193、显示屏194、以及用户标识模块(subscriber identity module,sim)卡接口195等。其中,传感器模块180可以包括压力传感器180a、陀螺仪传感器180b、气压传感器180c、磁传感器180d、加速度传感器180e、距离传感器180f、接近光传感器180g、指纹传感器180h、温度传感器180j、触摸传感器180k、环境光传感器180l、以及骨传导传感器180m等。
50.可以理解的是,本技术实施例示意的结构并不构成对电子设备的具体限定。在本技术另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
51.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap)、调制解调处理器(modem)、图形处理器(graphics processing unit,gpu)、图像信号处理器(image signal processor,isp)、控制器、视频编解码器、数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
52.处理器110可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
53.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
54.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口、集成电路内置音频(inter-integrated circuit sound,i2s)接口、脉冲编码调制(pulse code modulation,pcm)接口、通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口、移动产业处理器接口(mobile industry processor interface,mipi)、通用输入输出(general-purpose input/output,gpio)接口、以及用户标识模块(subscriber identity module,sim)接口。
55.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,
sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k、充电器,闪光灯、摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备的触摸功能。
56.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
57.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。音频模块170可以将获取到的下行音频流数据和上行音频流数据通过无线通信模块160传输到与电子设备无线连接的电子设备。
58.在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
59.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙连接的电子设备获得下行音频流的功能。
60.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi)、以及显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备的显示功能。
61.可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本技术另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
62.电子设备的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等实现。
63.天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
64.移动通信模块150可以提供应用在第一电子设备上的包括2g/3g/4g/5g等无线通信的解决方案。在一些实施例中,可以通过移动通信模块150实现两个电子设备之间的通话数据的传输,例如,作为被呼叫方设备时,可以获得来自呼叫方设备的下行音频流数据,以及可以向呼叫方设备传输上行音频流数据。
65.无线通信模块160可以提供应用在电子设备上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络)、蓝牙
(bluetooth,bt)、全球导航卫星系统(global navigation satellite system,gnss)、调频(frequency modulation,fm)、近距离无线通信技术(near field communication,nfc)、以及红外技术(infrared,ir)等无线通信的解决方案。
66.在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。在本技术的一个实施例中,电子设备可以通过无线通信模块160实现与另一电子设备的局域网络连接。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm)、通用分组无线服务(general packet radio service,gprs)、码分多址接入(code division multiple access,cdma)、宽带码分多址(wideband code division multiple access,wcdma)、时分同步码分多址(time-division-synchronous code division multiple access,td-scdma),长期演进(long term evolution,lte)、bt、gnss、wlan、nfc、fm、和/或ir技术等。gnss可以包括全球卫星定位系统(global positioning system,gps)、全球导航卫星系统(global navigation satellite system,glonass)、北斗卫星导航系统(beidou navigation satellite system,bds)、准天顶卫星系统(quasi-zenith satellite system,qzss)、和/或星基增强系统(satellite based augmentation system,sbas)等。
67.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled)、柔性发光二极管(flex light-emitting diode,fled)、miniled、microled、micro-oled、以及量子点发光二极管(quantum dot light emitting diode,qled)等。在一些实施例中,电子设备可以包括1个或n个显示屏194,n为大于1的正整数。
68.外部存储器接口120可以用于连接外部存储卡,例如micro安全数码(secure digital memory,sd)卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐、视频、录音文件等文件保存在外部存储卡中。
69.内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、以及至少一个功能所需的应用程序(比如声音播放功能、图像播放功能和录音功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如上行音频数据、下行音频数据和电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令和/或存储在设置于处理器110中的存储器的指令,执行电子设备的各种功能应用以及数据处理。
70.电子设备可以通过音频模块170、扬声器170a、受话器170b、麦克风170c、耳机接口170d、以及应用处理器等实现通话冲突处理功能等。
71.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例
中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
72.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备接听电话或语音信息时,可以通过受话器170b听到呼叫方设备传输的语音。
73.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c,实现上行音频流的采集。
74.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。在一些实施例中,当用户点击按压显示屏194上的接听键时,可实现手动接听通话功能,当用户点击按压显示屏194上的挂断键时,可实现手动挂断通话功能。
75.触摸传感器180k,也称“触控器件”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器180k可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备的表面,与显示屏194所处的位置不同。
76.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
77.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
78.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备的接触和分离。电子设备可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备中,不能和电子设备分离。
79.上述电子设备的软件系统可采用分层结构,本技术实施例以安卓(android)系统的分层架构为例示例性说明电子设备的软件架构。
80.如图2所示,图2为本技术实施例提供的一种电子设备的软件结构框图。
81.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用层、框架层、硬件抽象层和硬件层。
82.应用层(application,app)可以包括一系列应用程序包。例如,应用层可以包括图库、相机、邮件、日历、通话、蓝牙、音乐、视频、微信以及短信等应用程序。
83.其中,相机可以用于录制视频,并将录制好的视频存储于图库中。
84.图库具有分享、收藏等功能。
85.分享功能是指将图库中的视频通过电子设备中的通信类应用程序分享给其他电子设备,通信类应用程序是指能够与其他电子设备进行信息交互的应用程序,比如邮件、微信等。
86.收藏功能用于供用户收藏图库中视频,被收藏的视频可以被存储在一个单独的文件夹中,比如图库中的“个人收藏”文件夹,以方便用户查看或分享。
87.框架层(framework,fwk)为应用层的应用程序提供应用编程接口(application programming interface,api)和编程框架,包括一些预先定义的函数。
88.框架层包括内容解析器(contentresolver)、用户空间守护进程(fusedaemon)、媒体提供器(mediaprovider)、转码助手(transcodehelper)、媒体转码管理器(mediatranscodemanager)、视频轨道转码器(videotracktranscoder)和媒体编解码器(mediacodec)。
89.其中,内容解析器用于从媒体提供器获取应用程序所需的视频文件。
90.用户空间的文件系统(filesystem in userspace,fuse)是在用户态实现的文件系统。用户空间守护进程用于接收并处理其他模块对fuse的访问操作。
91.媒体提供器用于查找应用程序所需的视频文件。
92.转码助手用于受媒体提供器的调用,判断是否需要对视频进行转码。
93.媒体转码管理器用于在转码助手确定需要对视频进行转码的情况下,调用视频轨道转码器对视频进行转码。
94.视频轨道转码器用于调用媒体编解码器对视频进行转码。
95.媒体编解码器是android提供的用于对音视频进行编解码的类,它通过访问底层的codec来实现编解码的功能,是android media基础框架的一部分。
96.硬件抽象层(hal)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
97.硬件层(hardware,hw)是位于操作系统最底层的硬件。在图2中,hw包括摄像头1、摄像头2、摄像头3等。其中,摄像头1、摄像头2、摄像头3可对应于电子设备上的多个摄像头。
98.本技术实施例可以应用于app分享电子设备内存储的视频的场景。具体的,该电子设备内存储的视频可以通过电子设备的摄像头拍摄获得,也可以是电子设备通过其他方式获得的视频,本技术中,并不对电子设备获得视频的方式做限定,任何可以获得视频的方式均可应用于本技术中。
99.图3a为本技术实施例提供的第一种视频分享应用场景示意图,如图3a所示,在两个电子设备间通过通信类app分享视频的场景中,以电子设备为手机为例,如图3a所示,在手机1安装的app的聊天界面中,用户可选择照片按钮,进而手机会显示图库界面。用户在图库界面中选中需要分享的视频,点击发送按钮,则用户选中的视频被上传(upload)到第三方服务器,第三方服务器将该视频发送到手机2安装的app。即手机2的app从第三方服务器下载(download)该视频,该视频会被显示在手机2的app的聊天界面中,手机2的app可播放该视频。
100.图3b为本技术实施例提供的第二种视频分享应用场景示意图,如图3b所示,用户分享手机图库中的视频时,可以在手机1的图库界面选中一个视频,图3b中右上角显示对号的视频为用户选中的视频。
101.然后用户选择分享按钮,跳转到分享界面,然后用户在分享界面选择一个app,比如微信,选择发送给朋友,从好友列表中选择一个朋友,则会显示提示框,确认是否发送给选择的朋友,若用户点击确定按钮,则用户选中的视频会被上传到第三方服务器,第三方服务器将该视频发送到手机2的app中,进而手机2的app可播放该视频。
102.第三方服务器为用于支持不同手机中的app通信的服务器,本技术实施例对第三方服务器不作限定。
103.需要说明的是,上述分享视频的过程仅是本技术实施例例举的一些可能的实现方式,本技术实施对分享视频的过程不作具体限定。
104.具体的,电子设备可以以默认的格式拍摄视频,并将所拍摄的视频保存在图库中,例如,配置有安卓12系统的电子设备会以hevc格式拍摄视频,并将所拍摄的视频保存在图库中,hevc格式为h.265标准下的视频编码格式。
105.如图4所示,当手机1中的app分享图库中的hevc视频时,比如在图3a中用户点击发送按钮时,或者在图3b中用户点击确定按钮时,会触发app分享该hevc视频。
106.媒体提供器接收到app分享hevc格式的视频的操作后,可以调用转码助手判断该app是否支持打开hevc格式的视频。
107.如果支持,则可以直接向该app返回上述hevc格式的视频,若不支持,则可以启动转码流程,由媒体编解码器将hevc格式的视频转码为avc格式的视频,并向该app返回上述avc格式的视频。
108.app获取视频后,将获取到的视频上传(upload)至第三方服务器,由第三方服务器将该视频发送给手机1中的app,即手机1的app从第三方服务器下载(download)该视频,并播放视频。
109.若上述hevc格式的视频被重命名,由于重命名后得到的视频与原视频名称不同,因此在app不支持hevc格式视频的情况下,媒体提供器会重命名后的视频再次进行转码操作,即将hevc格式的视频转码为avc格式的视频,之后向该app返回上述avc格式的视频。
110.在上述过程中,因转码是一项计算开销极大的操作,时长为60秒的hevc视频在谷歌智能手机(pixel)上需要大约20秒才能被转码为avc格式,用户操作分享视频之后,需要等待较长时间,在电子设备对视频进行转码后,才能完成视频分享的过程。若上述视频被重命名,在用户操作分享重命名后的视频时,则用户同样需要等待较长时间,在电子设备对重命名后的视频进行转码后,才能够完成对重命名后的视频的分享过程。
111.为解决上述问题,本技术实施例提供了一种视频分享方法,上述方法可以应用于图1所示的电子设备。如图5所示,为本发明实施例提供的一种视频分享方法的流程示意图,上述方法包括以下步骤s501-s504。
112.s501:接收针对目标视频的分享操作。
113.其中,电子设备框架层中的内容解析器可以接收上述分享操作,上述分享操作用于:指示通过指定的应用程序分享上述目标视频。
114.例如,在图3a中用户点击发送按钮时,或者在图3b中用户点击确定按钮时,均可以
触发应用程序对目标视频的分享操作,本技术实施例对此不作具体限制。用户可以通过触摸屏幕、手势控制、语音控制等方式触发应用程序对目标视频的分享操作。
115.应用程序可以为电子设备中安装的除图库以外的第三方app,比如微信、邮箱等任意具有分享视频功能的app。
116.另外,上述目标视频是对原视频进行重命名后得到的视频。该重命名包括对上述原视频直接进行重命名得到目标视频,或对上述原视频进行复制并对复制得到的视频进行重命名,得到目标视频。
117.无论上述目标视频是直接对原视频进行重命名处理后得到的、还是对原视频进行复制并对复制得到的视频进行重命名处理后得到的,目标视频与原视频之间的区别仅为视频名称不同,两者的视频内容相同。
118.s502:响应上述分享操作,基于上述电子设备记录的第一对应关系,根据目标视频的视频存储路径,查找上述目标视频对应的目标转码文件的第一存储路径。
119.其中,电子设备中的内容解析器接收到分享操作后,向媒体提供器转发该分享操作,媒体提供器调用转码助手判断是否需要对目标视频进行转码。
120.另外,上述第一对应关系为:视频的视频存储路径与该视频对应的转码文件的存储路径之间的对应关系。
121.具体的,电子设备中可以包含属性信息数据库,属性信息数据库中的每一行记录有一个视频的属性信息,上述属性信息包含以下信息:视频编号、视频的文件名、视频存储路径、视频对应的转码文件的存储路径等。这里,将每一行内视频存储路径和视频对应的转码文件的存储路径之间的对应关系称为第一对应关系,因此,对于每个目标视频而言,存在与之对应的第一对应关系,对于属性信息数据库而言,存在多个第一对应关系。
122.其中,不同视频的编号不同,该视频编号可以自定义,也可以是应用属性信息数据库中的行号,例如,上述视频的编号可以为:该视频的属性信息在属性信息数据库中所在行的行号,此时,不同视频的编号不同。
123.本技术的一个实施例中,在需要分享目标视频时,目标视频的视频存储路径属于已知信息,在查找第一存储路径时,通过查找目标视频的视频存储路径在属性信息数据库中的所在行,将该行中记录的转码文件的存储路径作为第一存储路径,即根据目标视频的视频存储路径,依据第一对应关系从而获得第一存储路径。
124.再者,上述第一存储路径为:上述原视频对应的转码视频的存储路径。
125.上述原始频的转码文件的格式为上述应用程序能够打开的第一格式,例如,第一格式为avc格式,avc格式为h.264标准下的视频编码格式。
126.s503:访问上述第一存储路径,确定上述目标转码文件是否存在。
127.其中,电子设备的第一存储路径处可能存储有目标转码文件,也可能并未存储有目标转码文件,仅有在目标转码文件实际存在的的情况下,应用程序才能够直接打开并分享上述目标转码文件,因此在分享目标转码文件之前需要确定目标转码文件实际上是否存在。
128.本技术的一个实施例中,可以调用istranscodefilecached函数确定目标转码文件是否存在,istranscodefilecached函数的参数为上述第一存储路径。
129.若目标转码文件存在,则执行步骤s504。若上述目标转码文件不存在,则需要调用
媒体编解码器对目标视频进行转码得到转码文件,并向应用程序发送上述转码文件,应用程序才能够分享转码文件,跳出本程序,结束。
130.s504:确定上述目标转码文件存在,向上述应用程序发送上述目标转码文件,对上述目标转码文件进行分享。
131.若上述目标转码文件存在,则说明系统内存中已经存储有目标视频对应的转码文件,则媒体提供器可以从系统缓存中获取上述目标转码文件,并发送给应用程序,而不需要对目标视频进行转码。
132.应用程序接收到目标转码文件后,对目标转码文件进行分享。例如,参见4,手机1中安装的app接收到目标转码文件后,向手机2中安装的app分享上述目标转码文件。
133.采用本技术实施例提供的技术方案,在接收到对目标视频的分享操作后,若确定需要对目标视频进行转码,则可以从第一对应关系中查找目标视频的视频存储路径对应的目标转码文件的第一存储路径,目标视频是对原视频进行重命名后得到的,第一存储路径是原视频的转码文件的存储路径。应用程序则可以向应用程序发送第一存储路径处存储的目标转码文件,也就是原视频的转码文件。由此可见,在应用程序需要分享重命名后得到的目标文件时,应用程序可以分享目标转码文件,不需要再对目标视频进行重复的转码,从而可以防止重复进行视频转码造成电子设备计算资源的浪费。
134.为了实现图5所示的实施例,需要对电子设备中存储的第一对应关系进行管理,以下通过步骤a-步骤b对管理第一对应关系的过程进行说明。
135.步骤a:对第一视频进行重命名处理后,获得第一视频对应的转码文件的存储路径。
136.具体的,可以从电子设备中已记录的第一对应关系中,查找第一视频的视频存储路径对应的转码文件的存储路径,作为第一视频对应的转码文件的存储路径。
137.其中,上述查找转码文件的存储路径的过程与前述步骤s502中查找第一存储路径的过程相似,在此不再赘述。
138.另外,若从电子设备中已记录的第一对应关系中未查找到第一视频的视频存储路径对应的转码文件的存储路径,则可以生成第一视频对应的转码文件的存储路径。
139.其中,本技术实施例中对不同视频进行转码后得到的转码文件存储于同一文件夹中,转码文件的存储路径由转码文件所在文件夹的存储路径与转码文件的文件名组成,不同转码文件的存储路径中除转码文件的文件名之外的其他字段相同。
140.具体的,转码文件的文件名可以为转码前视频的视频编号,由于不同视频的视频编号不同,因此可以保证转码得到的转码文件的文件名之间不会存在重名冲突的问题。将存储转码文件的文件夹的存储路径与第一视频的视频编号进行组合,便可以生成第一视频的转码文件的存储路径。
141.步骤b:记录重命名后视频的视频存储路径与所获得的存储路径之间的对应关系,作为第一对应关系。
142.每当电子设备中存储的视频被重命名,便可以将被重命名的视频作为第一视频,执行上述步骤a-步骤b,以保证电子设备中记录有各个重命名后得到的视频的视频存储路径的第一对应关系。
143.除此之外,若电子设备中存储的转码前视频被删除,该视频不会再被分享,可以删
除电子设备中记录的包含转码前视频的视频存储路径的第一对应关系。
144.本发明的又一个实施例中,可以通过以下步骤c实现上述步骤s502。
145.步骤c:响应上述分享操作,在确定需要对上述目标视频进行转码的情况下,基于上述电子设备记录的第一对应关系,根据目标视频的视频存储路径,查找上述目标视频对应的目标转码文件的第一存储路径。
146.与前述步骤s502相比,在响应上述分享操作的过程中,在查找第一存储路径之前,媒体提供器可以先确定是否需要对目标视频进行转码,若需要进行转码再查找第一存储路径,向应用程序返回目标转码文件,若不需要进行转码则可以直接向应用程序返回目标视频,不再执行后续步骤,跳出本程序,结束。
147.具体的,在判断是否需要对目标视频进行转码时,可以判断上述应用程序是否支持打开第二格式的视频,上述第二格式为上述目标视频的格式,例如,上述第二格式可以为hevc格式。
148.若不支持,则确定应用程序不能够直接打开并分享上述目标视频,需要对目标视频进行转码。若支持,则说明应用程序可以直接打开并分享上述目标视频。
149.另外,除了判断应用程序是否支持打开第二格式的文件之外,还可以判断媒体编解码器的转码开关是否打开,若打开,才能在需要对目标视频进行转码时通过媒体编解码器对目标视频进行转码,若转码开关关闭,则不能够通过媒体编码器对目标视频进行转码。
150.并且,还可以判断目标视频是否存储于预设文件夹中,媒体编解码器仅对预设文件夹中存储的视频进行转码,例如,上述预设文件夹可以为:电子设备中默认的用于存储自身拍摄的视频的文件夹。若目标视频存储于预设文件夹中,才能在需要对目标视频进行转码时通过媒体编解码器对目标视频进行转码,若目标视频未存储于预设文件夹中,则媒体编解码器不能对目标视频进行转码。
151.应用图5所示的实施例进行视频分享的过程中,可能存在多个不同的视频对应同一个转码文件,为了对转码文件进行管理,上述电子设备中记录有转码文件的存储路径与该转码文件的引用数之间的第二对应关系,上述引用数表示:该转码文件对应的转码前的视频的数量。则基于上述第二对应关系,可以确定每一转码文件对应的转码前视频的数量。
152.具体的,上述第二对应关系存储于向量数组中,上述向量数组中的每一项数据为键值对key-value的格式,key为转码文件的存储路径,value为转码文件的引用数。这里,将向量数组内每一项数据记录的转码文件的存储路径和转码文件的引用数之间的对应关系称为第二对应关系,因此,对于每个转码视频而言,存在与之对应的第二对应关系,对于向量数组而言,存在多个第二对应关系。
153.以转码文件的存储路径为查找条件,查找上述向量数组,便可以获得该转码文件的引用数。
154.用户在使用电子设备的过程中,可以对电子设备中存储的转码前文件进行重命名操作,可能导致转码文件的引用数发生变化,为了对上述第二对应关系中包含的引用数进行管理,参见图6,为本发明实施例提供的第一种转码文件管理方法的流程示意图,上述方法包括以下步骤s601-s603。
155.s601:接收针对第二视频的处理操作。
156.具体的,用户可以通过触摸屏幕、手势控制、语音控制等方式触发应用程序对目标
视频的处理操作。
157.s602:若上述处理操作指示复制第二视频,则在对第二视频进行复制并重命名得到副本视频后,获取第二视频对应的转码文件的第二存储路径,在与上述第二存储路径存在第二对应关系的引用数的基础上加1。
158.图7a为本技术实施例提供的一种复制视频应用场景示意图。
159.如图所示,以电子设备为手机为例,用户复制手机图库中的视频时,可以在手机的图库界面中选中一个视频,图7a中右上角显示对号的视频为用户选中的视频。然后用户选择复制按钮,便可以复制所选择的视频。
160.需要说明的是,上述复制视频的过程仅是本技术实施例例举的一些可能的实现方式,本技术实施对分享视频的过程不作具体限定。
161.具体的,第二视频被复制并重命名后得到新的副本视频,相当于新生成了1个与第二视频对应同一转码文件的新的视频,则第二视频对应的转码文件的引用数加1。
162.本技术的一个实施例中,可以先获取第二视频对应的转码文件的第二存储路径,并查找电子设备存储的包含第二存储路径的第二对应关系,再将第二对应关系中包含的引用数加1。
163.具体的,获取第二视频对应的转码文件的第二存储路径的方式可以参见下文步骤d,在此暂不详述赘述。
164.s603:若上述处理操作指示删除第二视频,则在第二视频被删除后,获取第二视频对应的转码文件的第二存储路径,在与上述第二存储路径存在第二对应关系的引用数的基础上减1。
165.图7b为本技术实施例提供的一种删除视频应用场景示意图。
166.如图所示,以电子设备为手机为例,用户删除手机图库中的视频时,可以在手机的图库界面中选中一个视频,图7b中右上角显示对号的视频为用户选中的视频。然后用户选择删除按钮,便可以删除所选择的视频。
167.需要说明的是,上述删除视频的过程仅是本技术实施例例举的一些可能的实现方式,本技术实施对分享视频的过程不作具体限定。
168.本技术的一个实施例中,可以先获取第二视频对应的转码文件的第二存储路径,并查找电子设备存储的包含第二存储路径的第二对应关系,再将第二对应关系中包含的引用数减1。
169.具体的,获取第二视频对应的转码文件的第二存储路径的方式可以参见下文步骤d,在此暂不详述赘述。
170.另外,若第二视频被直接重命名,相当于重命名前的第二视频被删除,并新增了重命名后的视频,重命名前的第二视频与重命名后的视频对应同一转码文件,该转码文件的存储地址对应的转码文件的引用数减1再加1,保持不变。因此若第二视频被直接重命名,则不需要对引用数进行调整。
171.本技术的一个实施例中,获取第二视频对应的转码文件的第二存储路径的过程均可以通过以下步骤d实现。
172.步骤d:基于所记录的第一对应关系,查找上述第二视频的视频存储路径对应的转码文件的存储路径,作为第二存储路径;。
173.具体的,可以从电子设备已记录的第一对应关系中,查找第二视频的视频存储路径对应的转码文件的存储路径,作为第二存储路径。
174.本技术的另一个实施例中,若未查找到包含第二视频视频存储路径的第一对应关系,则可以生成第二存储路径。将存储转码文件的文件夹的存储路径与第二视频的视频编号进行组合,生成第二视频对应的转码文件的第二存储路径。
175.具体的,上述获得第二存储路径的过程与前述步骤a-步骤b所示的过程相似,在此不再赘述。
176.采用本技术实施例提供的技术方案,视频被复制或被删除均会导致视频对应的转码文件的引用数发生变化,因此每当视频被复制或删除便可以对视频对应的转码文件的引用数进行更新,使得电子设备中存储的每一第二对应关系中记录的引用数与转码文件实际的引用数保持一致。
177.另外,参见图8,为本发明实施例提供的第二种转码文件管理方法的流程示意图,与前述图6所示的实施例相比,上述步骤s603之后,还包括以下步骤s604。
178.s604:若调整后的引用数为0,则基于第二对应关系,删除上述引用数所对应的存储路径处存储的转码文件。
179.若调整后转码文件的引用数为0,则说明电子设备中不再存在转码后能够得到该转码文件的视频,理论上该转码文件不会再被打开与分享,因此可以将上述引用数所对应的存储路径处存储的转码文件删除。
180.采用本技术实施例提供的技术方案,若调整后的引用数为0,则可以删除上述引用数所对应的存储路径处存储的转码文件,从而释放转码文件所占用的电子设备的存储空间。
181.如图9所示,图9为当app需要分享视频时,电子设备内部软件的调用时序图。
182.其中,图9中的app位于图2的应用层,图9中的其他模块位于图2的框架层。
183.参见图9,该方法具体包括以下步骤:
184.s901:app向内容解析器发送视频获取请求。
185.其中,当app接收到用户对图库中的视频的分享操作时,app需先获取视频,所以app可以通过opentypedassetfile函数向内容解析器发送视频获取请求。
186.s902:内容解析器向媒体提供器转发视频获取请求。
187.其中,内容解析器可以通过opentypedassetfile函数向媒体提供器转发视频获取请求。
188.s903:媒体提供器查找视频文件。
189.s904:媒体提供器调用转码助手判断是否需要对视频进行转码。
190.媒体提供器可以通过shouldtranscode函数触发转码助手判断是否需要对视频进行转码。
191.转码助手可通过s905-s907判断是否需要对视频进行转码。
192.s905:转码助手判断手机是否允许转码。
193.具体有以下两个判断条件:
194.1.sdklevel.isatleasts,即手机的版本至少为谷歌系统的s版本,低于s版本的手机不具有将hevc格式视频转码为avc格式的能力。
195.2.“persist sys.fuse.transcode_enable”以及“transcode_enable”,即手机中的转码开关都是使能状态。
196.在满足以上两个判断条件的基础上,可确定手机允许转码,继续执行后续步骤s906-s907,继续判断是否需要对视频进行转码;若不满足任意一个条件,则确定手机不允许转码,进而确定无需对视频进行转码。
197.s906:转码助手判断视频是否在支持转码的存储路径下。
198.其中,支持转码的存储路径为“dcim/camera/*”,如果视频被存储在该路径中,则确定支持对该视频进行转码,继续执行后续步骤s907,继续判断是否需要对视频进行转码,否则确定不支持对该视频进行转码,进而确定无需对视频进行转码。
199.s907:转码助手判断该视频是否需要被转码。
200.转码助手可以获取app的应用媒体功能(applicatipnmediacapabilities),从中获取app支持的视频格式。并且,转码助手还可以获取app所请求获取的视频的编码格式。
201.如果该视频的编码格式为app支持的视频格式,则该视频不需要被转码;如果该视频的编码格式为app不支持的格式,则该视频不需要被转码。
202.示例性地,如果app支持的视频格式和视频的编码格式均为hevc或者均为avc,则该视频不需要被转码。
203.如果app支持的视频格式为avc,该视频的编码格式为hevc,则该视频需要被转码。
204.s908:媒体提供器确定需要对视频进行转码后,从用户空间文件系统打开该视频。
205.媒体提供器可通过openwithfuse函数从用户空间文件系统打开该视频。
206.s909:用户空间守护进程触发媒体提供器对视频进行转码。
207.用户空间守护进程通过transformforfuse函数触发媒体提供器对用户空间文件系统中的视频进行转码。
208.s910:媒体提供器判断该视频的转码文件是否存在。
209.本技术实施例中,可以通过前文所示的步骤s502-s503确定转码文件是否存在,在此不再赘述。
210.如果该视频的转码文件存在,则媒体提供器可将该转码文件发送给内容解析器,内容解析器将该转码文件发送给app,进而app可分享该视频。
211.如果该视频的转码文件不存在,则执行s911。
212.s911:媒体提供器调用转码助手对视频进行转码。
213.s912:转码助手向媒体转码管理器发送对该视频进行转码的队列请求。
214.s913:媒体转码管理器启动(start)视频轨道转码器对该视频进行转码。
215.具体实现中,本技术还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
216.具体实现中,本技术实施例还提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行上述方法实施例中的部分或全部步骤。
217.本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的
组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
218.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(application specific integrated circuit,asic)或微处理器之类的处理器的任何系统。
219.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
220.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、光盘只读存储器(compact disc read only memory,cd-roms)、磁光盘、只读存储器(read only memory,rom)、随机存取存储器(ram)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
221.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明书附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
222.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
223.需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备
不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
224.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1