如何用 Source Filter 来实现解密播放?(100)

  • 主题发起人 主题发起人 zhtiger126
  • 开始时间 开始时间
Z

zhtiger126

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现视频的加密,也播放!...怎样用一个源过滤器加载一个加密了的视频文件[比如mpeg文件],然后还原加密前的数据,并传送到下一级...如此来实现加密和解密播放.???
 
AsyncEx 这个filter可以在GraphEdit建立的图表中运行,但保存该图表的时候出错.另外,这个过滤器无法添加到你的"应用"中,不晓得什么原因.来源:DSPack_Demos/D6-D7/Filters/AsyncEx是dspack自带当加入到应用中的时候会出现下面的错误信息:-----------------------------------------------------Exception EInOutError in module AsyncEx.ax at 00068168.I/O error 103-------------------------------------------------------
 
什么地方有好用的delphi的dspack源过滤器,源码啊....
 
uses BaseClass, Filter in 'Filter.pas', StreamOutPin in 'StreamOutPin.pas', AsyncReader in 'AsyncReader.pas', WorkerThread in 'WorkerThread.pas', Queue in 'Queue.pas', StringQueue in 'StringQueue.pas', ShoutCastStream in 'ShoutCastStream.pas', ICYParser in 'ICYParser.pas', config in 'Config.pas', Sock in 'Sock.pas';----------------------------------这个filter用到这些单元,到底什么地方出了错呢,好晕哦...
 
什么地方可以下载一个好用的源过滤器呢..?
 
我是说源代码..呵呵...不是ax文件
 
如果谁要看细节,请告诉我,哪个单元文件,我贴!
 
你把dshow单元也要改动一下才可以,添加一个接口或修改一个接口
 
哦..这样啊..我不是很懂其实我是想处理播放流但真的很晕..
 
我明天发给你[:D]
 
to zlkxzy: 我使用的是DSPACK234 可以用吗? 如果行,就发给我,西西... 48662518@qq.com
 
to zlkxzy:我想在AsyncEx内部处理加载的文件,比如,随意调整流的处理位置和字节...可以,我现在的AsyncEx连正常的加到程序中都不行.你的怎样..怎么不发给我啊?
 
不好意思,到外地办了一点事,[:)]
 
AsyncEx我连上拉.呵呵..接下来的问题是,如何向outpin输送加密的流.哈哈..慢慢搞,蛮有意思的...
 
我现在的解密方法好笨的哦.呵呵..function TAsyncEx.Load(pszFileName: PWCHAR;
const pmt: PAMMediaType): HRESULT;
stdcall;var i :integer;
b :boolean;
begin
if Length(pszFileName) > MAX_PATH then
begin
result := ERROR_FILENAME_EXCED_RANGE;
exit;
end;

FFileName := GCFFilterID + ' (' + ExtractFileName(pszFileName) + ')';
FFilestream := TFileStream.Create(pszFileName, fmOpenRead or fmShareDenyWrite);
FStreamsize := FFilestream.Size;
//把FFilestream中的数据解密释放到mmtream,然后...... CreateFilterPin(TStreamAdapter.Create(mmtream, soOwned), true);
//现在用 //CreateFilterPin(TStreamAdapter.Create(FFilestream, soOwned), true);
//原来 GFFileName := pszFileName;
if FFileName = pszFileName then
Result := E_OUTOFMEMORY else
result := S_OK;
end;

//--------------------------------那为高手可以告诉我边解密,边播放啊..100分拿去,不够在加,呵呵...
 
后退
顶部