视频数据文件的同步编码和发送的制作方法_3

文档序号:8208080阅读:来源:国知局
由多个部分组成仅会涉及识别多个非重叠的字节范围,这些非重叠的字节范围分别共同构成整个输入文件22或编码文件24。
[0043]在步骤104,控制器14确定视频编码器16已将输入文件22的第一部分编码。例如,控制器14可确定已通过监控编码文件24的内容将输入文件22的第一部分编码。在该实施例中,控制器14可读取编码文件24以确定最近编码的视频数据的视频内的时间(例如通过读取用于最近编码数据的时间戳),并且还可读取输入文件22的文件头以确定输入文件22的视频总时间。通过比较视频总时间与最近编码的视频数据的时间,控制器14可确定输入文件22的第一部分是否已被编码。
[0044]控制器14确定输入文件22的第一部分已被编码之后,在步骤106,控制器14触发将编码文件24的第一部分由源装置10发送至目的地装置30的程序。在本文中,在步骤106触发的程序称作“发送程序”。然而,词语“程序”应作广义理解;应了解,“发送程序”可利用线程或其他任何适当的并行处理方法来实施。下面参照图3阐述由发送程序所执行的方法的实施例。
[0045]在步骤108,控制器14决定输入文件22是否已被视频编码器16完全编码。当只有输入文件22的第一部分已编码时,则情况并非如此,而在输入文件22的所有后续部分均已被编码时,才会发生这种情况。倘若控制器14确定输入文件22并未完全编码,则所述方法进入步骤110。倘若控制器14确定输入文件22已完全编码,则所述方法进入步骤112。
[0046]在步骤110,控制器14确定视频编码器16已将输入文件22的第二或后续部分编码。类似于步骤104,控制器14可通过比较视频总时间与最近编码视频数据的时间确定输入文件22的第二或后续部分是否已被编码。在控制器14确定视频编码器16已将输入文件22的第二或后续部分编码的情况下,所述方法返回步骤106并触发新的发送程序以将编码文件24最近创建的部分发送至目的地装置30。然而,在任一时间点只能存在一种发送程序。因此,倘若在已经存在发送程序的同时触发新的发送程序,该新发送程序则将加入等待队列。当现存的发送程序终止时,执行该等待队列中的下一发送程序。所述等待队列是先入先出队列(FIFO),以便确保将编码文件24的部分按照其编码顺序发送至目的地装置30,由此确保它们以正确顺序被目的地装置接收。在任一时间点仅能存在一种发送程序有助于确保编码文件的部分以正确顺序被目的地设备30接收。假如发送程序可使用源装置10与目的地装置30间的全部可用带宽,则仅使用一种发送程序并不会拖延将编码文件24发送至目的地装置30所用时间。
[0047]返回步骤106并触发新的发送程序之后,所述方法再次进入步骤108。在步骤106、108及110多次迭代之后,输入文件22将被完全编码,会触发相当数目的发送程序以使全部编码文件24均被发送至目的地装置。随后,所述方法进入步骤112,其中控制器14等待编码文件24的所有部分均由源装置10发送至目的地装置30。在步骤106触发的所有发送程序正常终止后,编码文件24的所有部分均被发送。随后,所述方法进入步骤114。
[0048]在步骤114,将新文件头信息发送至目的地装置30。如上所述,某些视频格式的编码程序以非线性方式输出数据,借此在编码程序开始时写入编码文件24的文件头26并随后在编码程序结束时将其替换为新文件头。在编码程序结束时(例如在决定步骤108的最后一次迭代时),存储在源装置10上的编码文件24的文件头26将不同于目标文件44的文件头46。出现这种差异的原因在于,在编码文件24的文件头26在源装置10上被替换之前,目标文件44的文件头46就被目的地装置30接收。因此,目标文件44的文件头46并未包含正确的信息,这会使得目标文件44不能播放。通过将新文件头信息由源装置10发送至目的地装置30,从而目的地装置30可将目标文件44的文件头46修改为包括新文件头信息,这一问题得以克服。新文件头信息可包括编码文件24的整个新文件头26,从而可由目的地装置30将目标文件44的原始文件头46完全替换。作为选择,新文件头信息可仅包括编码文件24的原始文件头26与编码文件24的新文件头26之间的差异,从而可由目的地装置30将目标文件44的原始文件头46更新为合并这些差异。因此,目的地装置30将目标文件44的文件头46修改为包括描述编码视频数据属性的元数据,这些属性只有在整个输入文件22均已编码之后才能获知。在目标文件44的文件头46已修改之后,文件头46包含目标文件44能够播放所需的信息。下面参照图5详述步骤114的实施例。
[0049]各部分的大小均可优化为提高本文所述方法的效率。第一部分的大小可相对较小,以使首次在步骤106触发发送程序之前的耗时最少。例如,第一部分的大小可占输入文件22大小的很少一部分(例如百分之五)或者所占字节数很小(例如一兆字节)。倘若第二及后续部分过小,则需建立极大数量的通信会话,以便将整个编码文件24发送至目的地装置30,由于每一通信会话的建立时间有限,因此建立非常大量通信会话会造成不必要的延迟。另一方面,倘若第二及后续部分过大,则存在的风险在于,编码文件24的所有在前部分会在控制器确定编码文件24的下一部分已编码之前就均已发送至目的地装置30,这会造成通信线路50不必要的闲置。可基于通信线路50与编码器16的相对速度选取第一、第二及后续部分的适当大小。第一、第二及后续部分的大小毋须相等。
[0050]现参照图3阐述用于发送数据的方法200的实施例。该方法200由在方法100的步骤106触发的发送程序来执行。发送程序执行方法200与方法100并行(例如同时进行),由此可使编码文件24同步编码并发送至目的地装置30。
[0051]仅供说明目的,参照实施例阐述方法200,其中文件传送协议(FTP)用于将数据从源装置10发送至目的地装置30。FTP的特别优势体现在与方法100结合使用,其原因在于FTP提供恢复早期连接会话的选项。FTP的“恢复”选项可使单个文件利用多个连续的通信会话传输,可使后一通信会话将数据加入由前一通信会话传输的文件。这一功能可使编码文件24的第二及后续部分添加至先前发送的目标文件44部分,有利地,并不需要在目的地设备30的专门应用程序来结合分别发送至目的地装置20的编码文件24各部分。尽管FTP具有这些优势,但仍应了解,其他适当的通信协议也可用于将数据从源装置发送至目的地装置。优选地,其他适当的通信协议包括向由前一通信会话传输的文件添加数据的功能。
[0052]方法200始于步骤202,其中源装置10与目的地装置30经由通信线路50建立通信会话。更具体地,源装置10的通信接口 12连接至目的地装置30的通信接口 22,以使数据可在装置10和30之间进行交换。
[0053]在方法200采用FTP的实施例中,步骤202包括下列动作。首先,在源装置10打开FTP套接字。随后,源装置10开放与目的地装置30的FTP会话,其可包括源装置10向目的地装置30提供验证信息(例如用户名和密码)。随后,源装置10向目的地装置30提供目标文件44的名称,其可包括提供目标文件44在目的地装置30的目录结构内的路径。目的地装置30验证由源装置10所提供的目标文件44的名称。
[0054]在步骤204,源装置10将编码文件24的一部分发送至目的地装置30。倘若由第一发送程序执行步骤204,则在目的地装置创建新的目标文件44并且编码文件24的第一部分存储在该新目标文件44中。倘若由第二及后续发送程序执行步骤204,编码文件24的第二及后续部分则加入现有的目标文件44。在编码文件24的部分已发送至目的地装置30后,方法200进入步骤206。
[0055]在步骤206,对目标文件44的新接收部分进行验证,以确保其与从源装置10发送的编码文件24的部分相同。例如,源装置10对编码文件24的部分计算校验和并将该校验和发送至目的地装置30。目的地装置30对目标文件44的相应部分计算校验和,将该校验和与从源装置10接收的校验和进行比较。随后,目的地装置30将消息发送至源装置10以指示校验和是否相等。倘若消息指示校验和相等,则所述方法进入步骤208。倘若消息指示校验和不等,则会执行错误处理(例如通过返回步骤204以重新发送编码文件24的部分)。源装置10及目的地装置30均可使用MD5算法来计算各自的校验和。
[0056]在步骤208,源装置10关闭与目的地装置30的通信会话。在方法200采用FTP的实施例中,源装置10关闭FTP套接字以便关闭通信会话。
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1