c#
VB
c++
TimeStart
输出变量将收到64位长媒体开始时间值。
TimeStop
输出变量将收到64位长媒体停止时间的价值。
使用Leadtools;使用Leadtools.188宝金博怎么下载Multimedia;使用Leadtools188宝金博怎么下载MultimediaExamples.Fixtures;公共bool_result =假;公共ConvertCtrlForm _form =新ConvertCtrlForm ();公共ConvertCtrl _convertctrl;/ /输入文件和输出文件字符串inFile1 = Path.Combine (LEAD_VARS.MediaDir,“ConvertCtrl_Source1.avi”);字符串inFile2 = Path.Combine (LEAD_VARS.MediaDir,“ConvertCtrl_Source2.avi”);字符串输出文件= Path.Combine (LEAD_VARS.MediaDir,“ConvertCtrl_ConcatAVIFilesExample.avi”);公共无效ConcatAVIFilesExample (){ConvertCtrl pConvert1;ConvertCtrl pConvert2;MultiStreamSource pMSSource;MultiStreamTarget pMSTarget;Int64 lStart;MediaType pmt;MediaType pInsertedMediaType;pConvert1 =新ConvertCtrl (真正的);pConvert2 =新ConvertCtrl (真正的);pMSSource =新MultiStreamSource ();pMSTarget =新MultiStreamTarget ();/ /设置开始时间为0lStart = 0;/ /设置输入文件名pConvert1。源文件= inFile1;/ /设置输出样本到目标对象pMSTarget。StreamCount = 2;/ /设置目标媒体类型视频和音频流pmt =新MediaType ();pmt。类型= Constants.MEDIATYPE_Video;pMSTarget。SetAcceptedMediaType (0, pmt);pmt。类型= Constants.MEDIATYPE_Audio;pMSTarget。SetAcceptedMediaType (pmt);pmt =零;/ /插入第一流媒体类型pInsertedMediaType = pMSTarget.GetAcceptedMediaType (0);pInsertedMediaType =零;/ /设置转换1目标对象pConvert1。TargetObject = pMSTarget;/ /启动源转换,所以我们可以得到媒体的样本格式pConvert1.StartConvert ();/ /初始化转换2/ /得到输出媒体样本格式并把它放到源对象pMSSource。StreamCount = 2;pmt = pMSTarget.GetConnectedMediaType (0);pMSSource。SetMediaType (0, pmt);pmt =零;pmt = pMSTarget.GetConnectedMediaType (1);pMSSource。SetMediaType (pmt);pmt =零;/ /插入第一流媒体类型pInsertedMediaType = pMSSource.GetMediaType (0);pInsertedMediaType =零;/ /设置输出文件名pConvert2。TargetFile =输出文件;/ /设置源转换2pConvert2。SourceObject = pMSSource;/ /启动转换不在座位上pConvert2.StartConvert ();/ /转换第一个文件ConcateFile (pConvert1 pMSTarget pMSSource,裁判lStart);/ *限制输出格式的媒体类型为第一个文件那是因为这两个文件必须有相同的媒体类型为这两个视频和音频视频,你必须确保文件有相同的帧率!微小的变化在帧速率可能会连接失败!控制会容忍差异在帧率如果你评论下一行* /pmt = pMSTarget.GetConnectedMediaType (0);pMSTarget。SetAcceptedMediaType (0, pmt);pmt =零;pmt = pMSTarget.GetConnectedMediaType (1);pMSTarget。SetAcceptedMediaType (pmt);pmt =零;/ /改变第二个文件的源文件pConvert1。源文件= inFile2;/ /重新开始转换pConvert1.StartConvert ();/ /把第二个文件ConcateFile (pConvert1 pMSTarget pMSSource,裁判lStart);/ /交付样品月底停止转换pMSSource。DeliverEndOfStream (0, 1000);pMSSource。DeliverEndOfStream (1000);如果(pConvert2。状态= = ConvertState.Running)pConvert2.StopConvert ();/ /释放源对象和目标对象pConvert2.ResetSource ();pConvert1.ResetTarget ();pConvert1.Dispose ();pConvert2.Dispose ();pMSSource.Dispose ();pMSTarget.Dispose ();_result = File.Exists(输出文件);}无效ConcateFile (ConvertCtrl pConvert1,MultiStreamTarget pMSTarget,MultiStreamSource pMSSource,裁判长lStart){MediaSample pmsSrc =零;MediaSample pmsDst =零;长MediaTimeStart;长MediaTimeStop;长LastStart;长LastStop;intlSampleStream;intlActualDataLength;LastStop = 0;做{/ /获得样本,允许10年代操作完成试一试{lSampleStream = pMSTarget.WaitForSample (1000);}抓(COMException cex){如果(cex。ErrorCode = = (intErrorCode.VFW_E_TIMEOUT){/ /流打破;}_result =假;打破;}试一试{/ /得到目标样本pmsSrc = pMSTarget。GetSample (lSampleStream 0);/ /得到源缓冲区pmsDst = pMSSource。GetSampleBuffer (lSampleStream, 2000);}抓(异常){_result =假;打破;}/ /得到媒体的时间pmsSrc.GetMediaTime (出MediaTimeStart,出MediaTimeStop);/ /得到源样品时间pmsSrc.GetTime (出LastStart,出LastStop);/ /设置目的地样品时间pmsDst。凝固时间(lStart + LastStart lStart + LastStop);/ /复制数据lActualDataLength = pmsSrc.ActualDataLength;/ /设置目的地缓冲区/ /我们可以托管缓冲区元帅,但没有必要因为我们边界/ /设置目的地源缓冲区内容(的数据)pmsDst。SetData (lActualDataLength pmsSrc.GetData (lActualDataLength));/ /复制其他旗帜pmsDst。不连续= pmsSrc.Discontinuity;pmsDst。前滚= pmsSrc.Preroll;pmsDst。同步点= pmsSrc.SyncPoint;/ /释放源样本pmsSrc =零;/ /交付目的地样本pMSSource。DeliverSample(1000年lSampleStream pmsDst);/ /释放目标样本pmsDst =零;}而(真正的);pConvert1.StopConvert ();lStart = LastStop;}静态类LEAD_VARS{公共常量字符串MediaDir =@“C: \ LEADTOOLS21 \媒体”;}
进口Leadtools进口Leadtools.188宝金博怎么下载Multimedia进口Leadtools188宝金博怎么下载MultimediaExamples.Fixtures公共_result作为布尔=假公共_form作为ConvertCtrlForm =新ConvertCtrlForm ()公共_convertctrl作为ConvertCtrl输入文件和输出文件私人inFile1作为字符串= Path.Combine (LEAD_VARS.MediaDir“ConvertCtrl_Source1.avi”)私人inFile2作为字符串= Path.Combine (LEAD_VARS.MediaDir“ConvertCtrl_Source2.avi”)私人输出文件作为字符串= Path.Combine (LEAD_VARS.MediaDir“ConvertCtrl_ConcatAVIFilesExample.avi”)公共子ConcatAVIFilesExample ()昏暗的pConvert1作为ConvertCtrl昏暗的pConvert2作为ConvertCtrl昏暗的pMSSource作为MultiStreamSource昏暗的pMSTarget作为MultiStreamTarget昏暗的lStart作为Int64昏暗的pmt作为MediaType昏暗的pInsertedMediaType作为MediaTypepConvert1 =新ConvertCtrl (真正的)pConvert2 =新ConvertCtrl (真正的)pMSSource =新MultiStreamSource ()pMSTarget =新MultiStreamTarget ()设置开始时间是0lStart = 0设置输入文件名pConvert1。源文件= inFile1一个目标对象的设置输出示例pMSTarget。StreamCount = 2“设定目标为视频和音频流媒体类型pmt =新MediaType ()pmt。类型= Leadtools.Mul188宝金博怎么下载timedia.Constants.MEDIATYPE_VideopMSTarget。pmt SetAcceptedMediaType (0)pmt。类型= Leadtools.Mul188宝金博怎么下载timedia.Constants.MEDIATYPE_AudiopMSTarget。SetAcceptedMediaType (pmt)pmt =没有什么“插入第一流媒体类型pInsertedMediaType = pMSTarget.GetAcceptedMediaType (0)pInsertedMediaType =没有什么设置转换1目标对象pConvert1。TargetObject = pMSTarget源转换的开始,因此我们可以得到媒体的样本格式pConvert1.StartConvert ()'初始化转换2得到输出媒体格式样本并把它放到源对象pMSSource。StreamCount = 2pmt = pMSTarget.GetConnectedMediaType (0)pMSSource。pmt SetMediaType (0)pmt =没有什么pmt = pMSTarget.GetConnectedMediaType (1)pMSSource。SetMediaType (pmt)pmt =没有什么“插入第一流媒体类型pInsertedMediaType = pMSSource.GetMediaType (0)pInsertedMediaType =没有什么设置输出文件名pConvert2。TargetFile =输出文件的设置源转换2pConvert2。SourceObject = pMSSource“开始转换不在座位上pConvert2.StartConvert ()的第一个文件转换ConcateFile (pConvert1 pMSTarget、pMSSource lStart)”限制输出格式的媒体类型的第一个文件的来源这是因为这两个文件必须有相同的视频和音频的媒体类型视频,你必须确保文件有相同的帧率!轻微的变化的帧率可能会使连接失败!帧速率的控制会容忍差异如果你评论下一行”pmt = pMSTarget.GetConnectedMediaType (0)pMSTarget。pmt SetAcceptedMediaType (0)pmt =没有什么pmt = pMSTarget.GetConnectedMediaType (1)pMSTarget。SetAcceptedMediaType (pmt)pmt =没有什么第二个文件的更改源文件pConvert1。源文件= inFile2“重新开始转换pConvert1.StartConvert ()“把第二个文件ConcateFile (pConvert1 pMSTarget、pMSSource lStart)“交付样品月底停止转换pMSSource。DeliverEndOfStream (0, 1000)pMSSource。DeliverEndOfStream (1000)如果pConvert2。状态= ConvertState.Running然后pConvert2.StopConvert ()结束如果“自由源对象和目标对象pConvert2.ResetSource ()pConvert1.ResetTarget ()pConvert1.Dispose ()pConvert2.Dispose ()pMSSource.Dispose ()pMSTarget.Dispose ()_result = File.Exists(输出文件)结束子私人子ConcateFile (按值传递pConvert1作为ConvertCtrl,按值传递pMSTarget作为MultiStreamTarget,按值传递pMSSource作为MultiStreamSource,ByReflStart作为长)昏暗的pmsSrc作为MediaSample =没有什么昏暗的pmsDst作为MediaSample =没有什么昏暗的MediaTimeStart作为长昏暗的MediaTimeStop作为长昏暗的LastStart作为长昏暗的LastStop作为长昏暗的lSampleStream作为整数昏暗的lActualDataLength作为整数LastStop = 0做得到样本,允许10年代操作完成试一试lSampleStream = pMSTarget.WaitForSample (1000)抓cex作为COMException如果cex。ErrorCode =CInt(ErrorCode.VFW_E_TIMEOUT)然后“流结束退出做结束如果_result =假退出做结束试一试试一试的目标样本pmsSrc = pMSTarget。GetSample (lSampleStream, 0)“源缓冲区pmsDst = pMSSource。GetSampleBuffer (lSampleStream, 2000)抓e1作为异常_result =假退出做结束试一试得到了媒体的时间pmsSrc.GetMediaTime (MediaTimeStart,MediaTimeStop)“源样品时间pmsSrc.GetTime (LastStart,LastStop)设定目标样品时间pmsDst。凝固时间(lStart + LastStart lStart + LastStop)“复制数据lActualDataLength = pmsSrc.ActualDataLength“设置目的地缓冲区我们可以在这里托管缓冲区元帅,但没有必要因为我们边界“设置目的地源缓冲区内容(的数据)pmsDst。SetData (lActualDataLength pmsSrc.GetData (lActualDataLength))复制其他旗帜pmsDst。不连续= pmsSrc.DiscontinuitypmsDst。前滚= pmsSrc.PrerollpmsDst。同步点= pmsSrc.SyncPoint的释放源样本pmsSrc =没有什么样品的交付目的地pMSSource。pmsDst DeliverSample (lSampleStream, 1000)“释放目标样本pmsDst =没有什么循环而真正的pConvert1.StopConvert ()lStart = LastStop结束子公共NotInheritable类LEAD_VARS公共常量MediaDir作为字符串=“C: \ LEADTOOLS21 \媒体”结束类
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。
