搜索 社区服务 统计排行 帮助
  • 729阅读
  • 8回复

[请教]rpjf与中文的问题

楼层直达
级别: 骑士
注册时间:
2004-09-27
在线时间:
3小时
发帖:
1362
近来很想让RPG实现用DropDupe滤镜,但这滤镜只能在rpjf工程索引文件中加载,而rpjf中不能使用中文路径、中文片源名,大家有好的解决方法吗?

级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 1楼 发表于: 2004-11-11
是指在 RPG 填好設定
而其中有 中文路径、中文片源名

c:\我的AVI源\第一章節.avi

但 RealProducer 的 .rpjf 不接受中文

試了一下
先用

C:\Program Files\Real\RealProducer>producer.exe -i "C:\新資料夾 (2)\dadada_BSD版
高解像度OP2.avi" -o streaming_movie.rm -cj c:\movie.rpjf -ad rv10_aacp_800k_vbr.
rpad

創建 movie.rpjf 工程索引文件
可看到原本的中文名稱 "C:\新資料夾 (2)\dadada_BSD版高解像度OP2.avi"
變成

C:\·s¸ê®Æ§¨ (2)\dadada_BSDª©°ª¸Ñ¹³«×OP2.avi
dadada_BSDª©°ª¸Ñ¹³«×OP2


用 RealProducer Plus 10 -> Open Job 結果沒問題
最後您可透過 RPG 將檔案做搬移或重新命名的處理

级别: 骑士
注册时间:
2004-09-27
在线时间:
3小时
发帖:
1362
只看该作者 2楼 发表于: 2004-11-11
先谢谢WeiLai兄,这个我也想过,只是这样一来对文件的操作次数太多,效率不行。

在牛过,ERP的作者仗义相助,给了答案
===================================
rpfj是xml文件,使用utf8的格式保存汉字就可以了。
http://rick.crazyasp.com/blogview.asp?logID=35

real好像是用的自己的xml解析组件。
把它的encoding改为gb2312,竟然不支持。看来只能用utf8了。
===================================

级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 3楼 发表于: 2004-11-11
那 RealProducer 還是可以吃 Unicode 文檔嘍 (還以為不支援,Avisynth就不支援※新版不知)

Unicode 及 utf8 的檔頭都是 FF FE 要轉換一次存檔實用 binary 存檔模式來存檔

P.S. FF FE + 內文(Unicode字碼) = Unicode 、utf8 文本檔

级别: 骑士
注册时间:
2004-09-27
在线时间:
3小时
发帖:
1362
只看该作者 4楼 发表于: 2004-11-11
引用
最初由 weilai 发布
那 RealProducer 還是可以吃 Unicode 文檔嘍 (還以為不支援,Avisynth就不支援※新版不知)

Unicode 及 utf8 的檔頭都是 FF FE 要轉換一次存檔實用 binary 存檔模式來存檔

P.S. FF FE + 內文(Unicode字碼) = Unicode 、utf8 文本檔


FF FE + 內文(Unicode字碼) = Unicode 、utf8 文本檔

哦,那在VB里这转换函数应该怎样写?rick的是C的转换函数,我还在啃左……

级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 5楼 发表于: 2004-11-11
有保留之前請你試驗的 KaLaOK 源碼嗎?
裡面

FileNo = FreeFile
Open SaveFileNameTextBox.Tag + SaveFileNameTextBox.Text For Binary Access Write As FileNo
If LOF(FileNo) = 0 Then
ReDim BufferStr(1)
BufferStr(0) = &HFF 'FF FE 是UniCode的識別檔頭
BufferStr(1) = &HFE
Put #FileNo, , BufferStr
End If

String2ByteArray strFileMeat, BufferStr ' 這裡是字串轉byte
Seek #FileNo, 3
Put #FileNo, , BufferStr
Close FileNo

================================

Public Function ByteArray2String(ByteArray() As Byte, OutputString As String)
Dim i As Long

OutputString = ""
For i = 0 To UBound(ByteArray)
If ByteArray(i) = 0 Then Exit For
OutputString = OutputString & ChrB(ByteArray(i))
Next i
OutputString = StrConv(OutputString, vbUnicode)

End Function

Public Function String2ByteArray(OutputString, ByteArray() As Byte)
Dim i, j As Long
Dim TempStr As String

ReDim ByteArray(1 To Len(OutputString) * 2)
For i = 1 To Len(OutputString) * 2
j = j + 1
ByteArray(j) = AscB(MidB(OutputString, i, 1))
Next i

End Function

级别: 骑士
注册时间:
2004-09-27
在线时间:
3小时
发帖:
1362
只看该作者 6楼 发表于: 2004-11-11
KaLaOK的源碼是宝物来的,怎么可能删;)

OK!现在下马去试,Thx~

级别: 骑士
注册时间:
2004-09-27
在线时间:
3小时
发帖:
1362
只看该作者 7楼 发表于: 2004-11-11
顺便问一下,avs有像dropdup的滤镜吗?在AVS插件网上找到一个dup.dll,不过它只是做检查,不会删除重复帧,因为想到压wmv能实现这个效果应该会有大提升,问问……

级别: 版主
注册时间:
2002-12-02
在线时间:
0小时
发帖:
3002
只看该作者 8楼 发表于: 2004-11-11
引用
最初由 dio1888 发布
顺便问一下,avs有像dropdup的滤镜吗?在AVS插件网上找到一个dup.dll,不过它只是做检查,不会删除重复帧,因为想到压wmv能实现这个效果应该会有大提升,问问……


這個我就不知道了
不過是否能用检查的資訊自己刪除重复帧? ^^||

快速回复

限150 字节
上一个 下一个