一种录制流媒体文件的方法及相应的设备转让专利

申请号 : CN201110259311.6

文献号 : CN102316358B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢芳

申请人 : 惠州TCL移动通信有限公司

摘要 :

本发明实施例公开了一种录制流媒体文件的方法,还提供了相应的设备。在本发明实施例提供的方法中,通过在本地预设一个固定大小的第一媒体文件,然后将获取的帧数据循环保存到该第一媒体文件;实现了使用户能够一边收听收看实时的媒体文件,一边录制该媒体文件,但又不会使移动终端因为内存的不足而影响其它模块的正常运行,从而解决用户能够根据需要保存媒体文件的问题,提高用户体验度。

权利要求 :

1.一种录制流媒体文件的方法,其特征在于,包括:

当收听或者收看实时的流媒体文件,且预录功能开启时,获取流媒体的帧数据;

判断所获取的所述帧数据的上一个帧数据是否保存在第一媒体文件的末尾,其中,所述第一媒体文件预先设置为固定大小;

若所述帧数据的上一个帧数据保存在预先设置的第一媒体文件的末尾,则将所述帧数据保存到所述第一媒体文件中第一个帧数据的位置,用所述帧数据覆盖所述第一媒体文件中的第一个帧数据,若所述帧数据的上一个帧数据不是保存在预先设置的第一媒体文件的末尾,则将所述帧数据保存在所述上一个帧数据之后的位置;

继续获取下一个帧数据,并判断所述下一个帧数据的上一个帧数据是否保存在预先设置的第一媒体文件的末尾,直至停止获取所述流媒体的帧数据或者直至获取到所述流媒体的最后一个帧数据。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当停止获取流媒体的帧数据或者获取到所述流媒体的最后一个帧数据后,对所述第一媒体文件进行剪辑以生成第二媒体文件;

保存所述第二媒体文件。

3.根据权利要求2所述的方法,其特征在于,所述当停止获取流媒体的帧数据或者获取到所述流媒体的最后一个帧数据后,对所述第一媒体文件进行剪辑以生成第二媒体文件的步骤包括:接收用户输入的结束录制指令并停止对媒体流的帧数据的获取;

接收用户输入的剪辑指令,并对所述第一媒体文件中的帧数据按照保存的先后顺序对所述帧数据进行剪辑从而生成第二媒体文件。

4.根据权利要求3所述的方法,其特征在于,所述对第一媒体文件中的帧数据按照保存的先后顺序对所述帧数据进行剪辑从而生成第二媒体文件的步骤包括:依据所述帧数据的排列顺序播放所述第一媒体文件;

接收用户输入的起始帧数据确认指令和结尾帧数据确认指令;

根据所述起始帧数据确认指令和结尾帧数据确认指令确认相应的起始帧数据和结尾帧数据,并根据所述起始帧数据和结尾帧数据生成头文件;

根据所述头文件以及所述起始帧数据和结尾帧数据生成第二媒体文件。

5.根据权利要求1所述的方法,其特征在于,所述获取流媒体的帧数据的步骤之后还包括:若所述帧数据为从所述流媒体获取的第一个帧数据,则重新记录所述第一媒体的头文件。

6.一种录制流媒体文件的设备,其特征在于,包括:

获取模块,用于当收听或者收看实时的流媒体文件,且预录功能开启时,获取流媒体的帧数据;

判断模块,用于判断所述帧数据的上一个帧数据是否保存在预先设置的第一媒体文件的末尾,所述第一媒体文件预先设置为固定大小;

第一保存模块,用于当所述帧数据的上一个帧数据保存在预先设置的第一媒体文件的末尾时,将所述帧数据保存到所述第一媒体文件中第一个帧数据的位置,用所述帧数据覆盖所述第一媒体文件中的第一个帧数据,当所述帧数据的上一个帧数据不是保存在预先设置的第一媒体文件的末尾时,将所述帧数据保存在所述上一个帧数据之后的位置。

7.根据权利要求6所述的设备,其特征在于,所述设备还包括:剪辑模块,用于当停止获取流媒体的帧数据或者获取到所述流媒体的最后一个帧数据后,对所述第一媒体文件进行剪辑以生成第二媒体文件;

第二保存模块,用于保存所述剪辑模块剪辑完成后的第二媒体文件。

8.根据权利要求7所述的设备,其特征在于,所述剪辑模块包括:第一接收单元,用于接收用户输入的结束录制指令以及剪辑指令;

播放单元,用于当第一接收单元接收用户输入的结束录制指令以及剪辑指令后,依据所述帧数据的排列顺序播放所述第一媒体文件;

第二接收单元,用于接收用户输入的起始帧数据确认指令和结尾帧数据确认指令;

剪辑单元,用于根据所述第二接收单元接收的起始帧数据确认指令和结尾帧数据确认指令确认相应的起始帧数据和结尾帧数据,并根据所述起始帧数据和结尾帧数据生成头文件;

第二媒体文件生成单元,用于根据所述剪辑单元生成的头文件以及所述起始帧数据和结尾帧数据生成第二媒体文件。

9.根据权利要求6所述的设备,其特征在于,所述设备还包括头文件记录模块,用于当所述帧数据为从所述流媒体获取的第一个帧数据时,重新记录所述第一媒体的头文件。

说明书 :

一种录制流媒体文件的方法及相应的设备

技术领域

[0001] 本发明涉及计算机领域,特别是涉及一种录制流媒体文件的方法及相应的设备。

背景技术

[0002] 收听收看实时的流媒体文件,例如FM电台、移动终端电视,已经逐渐成为手机必不可少的功能之一。用户在收听收看流媒体文件时,经常会听到看到一些以前没有接触过的流媒体文件,希望能够保存下来。但等到想保存时已经为时已晚,想保存的音频或视频已经结束了。
[0003] 录制流媒体文件的原理是对模拟信号进行抽样、量化和编码后得到可以记录下来的数字信息流,比如用文本编辑器UltraEdit打开一个流媒体文件所看到的二进制编码。
[0004] 现有技术中,对流媒体文件的录制一般是这样实现的:
[0005] 首先简单介绍一下流媒体文件的格式,如图1所示,流媒体文件包含一个头文件,其中,头文件记录了文件格式、长度、播放速度等等流媒体文件的基本信息,在头文件后面就是一帧一帧的帧数据了。在录制流媒体文件时,录制设备将获取的帧数据依次保存到头文件的后面,一直到最后一帧数据。
[0006] 如果利用现有的录制技术,对移动终端的内存要求非常高,这无疑增加了用户成本,并且如果因为录制流媒体文件而使得移动终端耗内存过多,会导致移动终端内存不足而影响其它模块的正常运行,这也是得不偿失的。
[0007] 那么,如何使用户能够一边收听收看实时的媒体文件,一边录制该媒体文件,但又不会使移动终端因为内存的不足而影响其它模块的正常运行,从而解决用户能够根据需要保存媒体文件的问题,提高用户体验度,是亟待解决的问题。

发明内容

[0008] 本发明主要解决的技术问题是提供一种录制流媒体文件的方法及相应的设备,使用户能够一边收听收看实时的媒体文件,一边录制该媒体文件,但又不会使移动终端因为内存的不足而影响其它模块的正常运行,从而解决用户能够根据需要保存媒体文件的问题。
[0009] 一种录制流媒体文件的方法,包括:
[0010] 当收听或者收看实时的流媒体文件,且预录功能开启时,获取流媒体的帧数据;
[0011] 判断该获取的帧数据的上一个帧数据是否保存在第一媒体文件的末尾,其中,第一媒体文件预先设置为固定大小;
[0012] 若该帧数据的上一个帧数据保存在预先设置的第一媒体文件的末尾,则将该帧数据保存到第一媒体文件中第一个帧数据的位置,用帧数据覆盖第一媒体文件中的第一个帧数据,若该帧数据的上一个帧数据不是保存在预先设置的第一媒体文件的末尾,则将该帧数据保存在该帧数据的上一个帧数据之后的位置;
[0013] 继续获取下一个帧数据,并判断该下一个帧数据的上一个帧数据是否保存在预先设置的第一媒体文件的末尾,直至停止获取流媒体的帧数据或者直至获取到流媒体的最后一个帧数据。
[0014] 进一步的,本方法还包括:
[0015] 当停止获取流媒体的帧数据或者获取到流媒体的最后一个帧数据后,对第一媒体文件进行剪辑以生成第二媒体文件;
[0016] 保存该第二媒体文件。
[0017] 进一步的,在将帧数据保存到第一媒体文件中第一个帧数据的位置的步骤包括:
[0018] 先将第一个帧数据删除,然后写该帧数据;或者,
[0019] 用该帧数据覆盖第一媒体文件中的第一个帧数据。
[0020] 进一步的,当停止获取流媒体的帧数据或者获取到流媒体的最后一个帧数据后,对第一媒体文件进行剪辑以生成第二媒体文件的步骤包括:
[0021] 接收用户输入的结束录制指令并停止对媒体流的帧数据的获取;
[0022] 接收用户输入的剪辑指令,并对第一媒体文件中的帧数据按照保存的先后顺序对获取的帧数据进行剪辑从而生成第二媒体文件。
[0023] 进一步的,对第一媒体文件中的帧数据按照保存的先后顺序对获取的帧数据进行剪辑从而生成第二媒体文件的步骤包括:
[0024] 依据获取的帧数据的排列顺序播放第一媒体文件;
[0025] 接收用户输入的起始帧数据确认指令和结尾帧数据确认指令;
[0026] 根据起始帧数据确认指令和结尾帧数据确认指令确认相应的起始帧数据和结尾帧数据,并根据起始帧数据和结尾帧数据生成头文件;
[0027] 根据头文件以及起始帧数据和结尾帧数据生成第二媒体文件。
[0028] 进一步的,在获取流媒体的帧数据的步骤之后还包括:
[0029] 若帧数据为从流媒体获取的第一个帧数据,则重新记录第一媒体的头文件。
[0030] 一种录制流媒体文件的设备,包括:
[0031] 获取模块,用于当收听或者收看实时的流媒体文件,且本设备的预录功能开启时,获取流媒体的帧数据;
[0032] 判断模块,用于判断该帧数据的上一个帧数据是否保存在预先设置的第一媒体文件的末尾,其中,第一媒体文件预先设置为固定大小;
[0033] 第一保存模块,用于当该帧数据的上一个帧数据保存在预先设置的第一媒体文件的末尾时,将该帧数据保存到第一媒体文件中第一个帧数据的位置,用帧数据覆盖第一媒体文件中的第一个帧数据,当该帧数据的上一个帧数据不是保存在预先设置的第一媒体文件的末尾时,将该帧数据保存在上一个帧数据之后的位置。
[0034] 进一步的,本设备还包括:
[0035] 剪辑模块,用于当停止获取流媒体的帧数据或者获取到流媒体的最后一个帧数据后,对第一媒体文件进行剪辑以生成第二媒体文件;
[0036] 第二保存模块,用于保存剪辑模块剪辑完成后的第二媒体文件。
[0037] 进一步的,剪辑模块包括:
[0038] 第一接收单元,用于接收用户输入的结束录制指令以及剪辑指令;
[0039] 播放单元,用于当第一接收单元接收用户输入的结束录制指令以及剪辑指令后,依据获取的帧数据的排列顺序播放第一媒体文件;
[0040] 第二接收单元,用于接收用户输入的起始帧数据确认指令和结尾帧数据确认指令;
[0041] 剪辑单元,用于根据第二接收单元接收的起始帧数据确认指令和结尾帧数据确认指令确认相应的起始帧数据和结尾帧数据,并根据起始帧数据和结尾帧数据生成头文件;
[0042] 第二媒体文件生成单元,用于根据剪辑单元生成的头文件以及起始帧数据和结尾帧数据生成第二媒体文件。
[0043] 进一步的,本设备还包括头文件记录模块,用于当该获取的帧数据为从流媒体获取的第一个帧数据时,重新记录第一媒体的头文件。
[0044] 在本发明提供的方法中,通过在本地预设一个固定大小的第一媒体文件,然后将获取的帧数据循环保存到该第一媒体文件;实现了使用户能够一边收听收看实时的媒体文件,一边录制该媒体文件,但又不会使移动终端因为内存的不足而影响其它模块的正常运行,从而解决用户能够根据需要保存媒体文件的问题,提高用户体验度。

附图说明

[0045] 图1是流媒体文件格式示意图;
[0046] 图2是本发明录制流媒体文件的方法的数据流程图;
[0047] 图3是本发明录制流媒体文件的方法一优选实施例的数据流程图;
[0048] 图4是本发明录制流媒体文件的方法优选实施例中第1个帧数据存放示意图;
[0049] 图5是本发明录制流媒体文件的方法优选实施例中第n+1个帧数据存放示意图;
[0050] 图6是本发明录制流媒体文件的设备实施例的逻辑结构示意图。

具体实施方式

[0051] 参阅图2,本发明录制流媒体文件的方法的实施例包括:
[0052] 201、当收听或者收看实时的流媒体文件,且本设备的预录功能开启时,获取流媒体的帧数据;
[0053] 202、判断所获取的帧数据的上一个帧数据是否保存在第一媒体文件的末尾,其中,第一媒体文件预先设置为固定大小;
[0054] 203、若该帧数据的上一个帧数据保存在预先设置的第一媒体文件的末尾,则将所述帧数据保存到所述第一媒体文件中第一个帧数据的位置;
[0055] 若该帧数据的上一个帧数据保存在预先设置的第一媒体文件的末尾,则将获取的帧数据保存到第一媒体文件中第一个帧数据的位置,然后继续获取下一个帧数据,并判断上一个帧数据是否保存在预先设置的第一媒体文件的末尾,直至停止获取流媒体的帧数据或者直至获取到流媒体的最后一个帧数据;
[0056] 204、若该帧数据的上一个帧数据不是保存在预先设置的第一媒体文件的末尾,则将该帧数据保存在该上一个帧数据之后的位置;
[0057] 若该帧数据的上一个帧数据不是保存在预先设置的第一媒体文件的末尾,则将获取的帧数据保存在该帧数据的上一个帧数据之后的位置,然后继续获取下一个帧数据,并判断上一个帧数据是否保存在预先设置的第一媒体文件的末尾,直至停止获取流媒体的帧数据或者直至获取到流媒体的最后一个帧数据;
[0058] 205、判断是否停止获取流媒体的帧数据或者直至获取到流媒体的最后一个帧数据;
[0059] 判断是否停止获取流媒体的帧数据或者直至获取到流媒体的最后一个帧数据,如果是,则结束流程;如果否,则继续执行步骤201,获取下一个帧数据;
[0060] 在本实施例中,通过在本地预设一个固定大小的第一媒体文件,然后将获取的帧数据循环保存到该第一媒体文件;实现了使用户能够一边收听收看实时的媒体文件,一边录制该媒体文件,但又不会使移动终端因为内存的不足而影响其它模块的正常运行,从而解决用户能够根据需要保存媒体文件的问题,提高用户体验度。
[0061] 在录制好第一媒体文件后,用户可以重复听看第一媒体文件,但是第一媒体文件中的数据不一定都是用户所需要的,为了解决这个问题,本发明通过对第一媒体文件进行剪辑得到用户需要的第二媒体文件;下面请参阅图3进行详细说明,本发明录制流媒体文件的方法的优选实施例包括:
[0062] 301、当用户收听或者收看实时的流媒体文件时,判断本设备的预录功能是否开启;
[0063] 在本设备中预先设置一项预录功能,可以在本设备的文件系统中预先设置一个专门用于记录手机状态变量的文件,在文件中设置一个标识变量,该标识变量用来记录预录功能是否开启,例如,在文件系统中预先设置一个file.txt文件,并在file.txt文件中设置一个标识变量flag,当flag为1时,设备的预录功能开启,当flag为0时,设备的预录功能关闭;当然,在本设备中预先设置一项预录功能也可以通过在功能项中新增预录功能来实现,此处不做限制;
[0064] 当用户收听或者收看实时的流媒体文件时,判断本设备的预录功能是否开启,例如可以通过读file.txt文件中的flag来判断,如果本设备的预录功能开启,则重新记录第一媒体文件的头文件,然后继续执行步骤302,如果本设备的预录功能没有开启,则结束流程;
[0065] 302、获取流媒体的第一个帧数据;
[0066] 当步骤301中判断出本设备的预录功能开启后,获取流媒体的帧数据;
[0067] 303、将获取的第一个帧数据保存到第一媒体文件的头文件之后的位置;
[0068] 因为在每一次开始录制第一媒体文件时,都需要重新记录第一媒体文件的头文件,获取的第一个帧数据直接跳过头文件,记录在头文件之后的位置;
[0069] 304、获取流媒体的下一个帧数据;
[0070] 305、判断上一个帧数据是否保存在第一媒体文件的末尾;
[0071] 在获取了下一个帧数据后,判断该获取的帧数据的上一个帧数据是否保存在第一媒体文件的末尾,即是否第一媒体文件已经存满,如果上一个帧数据保存在第一媒体文件的末尾,则执行步骤306,如果上一个帧数据没有保存在第一媒体文件的末尾,则执行步骤307;
[0072] 306、将帧数据保存到第一媒体文件中第一个帧数据的位置;
[0073] 则将获取到的帧数据保存到第一媒体文件中第1个帧数据的位置,具体的,可以直接将原有的第1个帧数据的位置的帧数据覆盖,也可以先将原有的第一个帧数据的位置的帧数据删除,然后再将获取到的帧数据写到第一个帧数据的位置,此处不做限制;
[0074] 以图5为例进行具体说明,例如在第一媒体文件中可以存储n个帧数据,如果n个帧数据已经存满,那么将新获取的第n+1个帧数据保存到第一媒体文件中第1个帧数据的位置;
[0075] 307、将帧数据保存在上一个帧数据之后的位置;
[0076] 如果步骤305中判断出上一个帧数据没有保存在第一媒体文件的末尾,那么,将获取的帧数据保存到上一个帧数据之后的位置,具体的,如果上一个帧数据之后的位置是空的,则直接写入获取的帧数据,如果上一个帧数据之后的位置不是空的,则可以用获取的帧数据直接将上一个帧数据之后的位置的帧数据覆盖,也可以先将上一个帧数据之后的位置的帧数据删除,然后再将获取到的帧数据写入,此处不做限制;
[0077] 308、判断是否停止获取流媒体的帧数据或者是否获取完流媒体的帧数据;
[0078] 如果用户输入停止获取的指令或者已经获取完流媒体的帧数据,则执行步骤309,如果没有收到用户输入的停止获取的指令,也没有获取完流媒体的帧数据,则返回步骤304继续获取下一个帧数据;
[0079] 309、接收用户输入的剪辑指令;
[0080] 如果步骤308中判断出用户输入停止获取的指令或者已经获取完流媒体的帧数据,认为用户想录制的媒体文件已经录制完毕,因为录制的第一媒体文件的帧数据播放顺序不一定是按照获取帧数据的时间先后播放的,如图5所示,首先播放第n+1个帧数据,然后播放第2个帧数据、第三个帧数据等等,而正确的播放顺序是先播放第1个帧数据,再播放第2个帧数据……最后播放第n+1个帧数据,那么如何将完整的媒体文件呈现给用户呢,这时就需要对第一媒体文件进行剪辑;
[0081] 首先接收用户输入的剪辑指令,指示需要对第一媒体文件进行剪辑;
[0082] 310、依据帧数据的排列顺序播放第一媒体文件;
[0083] 311、接收用户输入的起始帧数据确认指令和结尾帧数据确认指令;
[0084] 当播放到某一帧时,用户可以通过键盘或者其他装置输入起始帧数据确认指令,或者结尾帧数据确认指令;
[0085] 312、根据起始帧数据确认指令和结尾帧数据确认指令确认相应的起始帧数据和结尾帧数据,并根据起始帧数据和结尾帧数据生成头文件;
[0086] 设备根据起始帧数据确认指令和结尾帧数据确认指令确定对应的起始帧数据和结尾帧数据;再根据起始帧数据和结尾帧数据确定文件长度,再生成头文件;
[0087] 313、根据头文件以及起始帧数据和结尾帧数据生成第二媒体文件,并另存该第二媒体文件;
[0088] 在剪辑完第一媒体文件后,可以将第一媒体文件中的帧数据删除,也可以保留,此处不做限制;
[0089] 在本实施例中,只要能达到本发明的目的,各个步骤的先后顺序根据具体的设计可以改动,此处不做限制;
[0090] 在本实施例中,通过在本地预设一个固定大小的第一媒体文件,然后将获取的帧数据循环保存到该第一媒体文件,录制完第一媒体文件后,再根据用户的需要对第一媒体文件进行剪辑,生成用户需要的第二媒体文件;实现了使用户能够一边收听收看实时的媒体文件,一边录制该媒体文件,但又不会使移动终端因为内存的不足而影响其它模块的正常运行,从而解决用户能够根据需要保存媒体文件的问题,提高用户体验度。
[0091] 请参阅图6,本发明录制流媒体文件的设备的实施例包括:
[0092] 获取模块601,用于当收听或者收看实时的流媒体文件,且本设备的预录功能开启时,获取流媒体的帧数据;
[0093] 判断模块602,用于判断上一个帧数据是否保存在预先设置的第一媒体文件的末尾,其中,第一媒体文件预先设置为固定大小;
[0094] 第一保存模块603,用于当判断模块602判断出上一个帧数据保存在预先设置的第一媒体文件的末尾时,将帧数据保存到第一媒体文件中第一个帧数据的位置,然后获取模块601继续获取下一个帧数据,并再由判断模块602判断上一个帧数据是否保存在预先设置的第一媒体文件的末尾,直至停止获取流媒体的帧数据或者直至获取到流媒体的最后一个帧数据;
[0095] 进一步的,本实施例中的设备还包括:
[0096] 剪辑模块604,用于当停止获取流媒体的帧数据或者获取到流媒体的最后一个帧数据后,对第一媒体文件进行剪辑以生成第二媒体文件;
[0097] 第二保存模块605,用于保存剪辑模块604剪辑完成后的第二媒体文件。
[0098] 进一步的,第一保存模块603还用于当判断模块602判断出上一个帧数据不是保存在预先设置的第一媒体文件的末尾时,将帧数据保存在该上一个帧数据之后的位置,然后获取模块601继续获取下一个帧数据,并再由判断模块602判断上一个帧数据是否保存在预先设置的第一媒体文件的末尾,直至停止获取流媒体的帧数据或者直至获取到流媒体的最后一个帧数据;
[0099] 进一步的,剪辑模块604包括:
[0100] 第一接收单元,用于接收用户输入的结束录制指令以及剪辑指令;
[0101] 播放单元,用于当第一接收单元接收用户输入的结束录制指令以及剪辑指令后,依据帧数据的排列顺序播放所述第一媒体文件;
[0102] 第二接收单元,用于接收用户输入的起始帧数据确认指令和结尾帧数据确认指令;
[0103] 剪辑单元,用于根据第二接收单元接收的起始帧数据确认指令和结尾帧数据确认指令确认相应的起始帧数据和结尾帧数据,并根据起始帧数据和结尾帧数据生成头文件;
[0104] 第二媒体文件生成单元,用于根据剪辑单元生成的头文件以及起始帧数据和结尾帧数据生成第二媒体文件;
[0105] 进一步的,本实施例中的设备还包括头文件记录模块606,用于当获取模块601获取的帧数据为从流媒体获取的第一个帧数据时,重新记录所述第一媒体的头文件。
[0106] 在本实施例中,通过在本地预设一个固定大小的第一媒体文件,然后将获取的帧数据循环保存到该第一媒体文件,录制完第一媒体文件后,再根据用户的需要对第一媒体文件进行剪辑,生成用户需要的第二媒体文件;实现了使用户能够一边收听收看实时的媒体文件,一边录制该媒体文件,但又不会使移动终端因为内存的不足而影响其它模块的正常运行,从而解决用户能够根据需要保存媒体文件的问题,提高用户体验度。
[0107] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。