32 1234
发新话题
打印

FFmpeg for VB 示例

FFmpeg for VB 示例

假设目录结构如下
其中ffmpeg*.dll包含在“FFmpeg for Delphi”帖子的附件里
复制内容到剪贴板
代码:
C:\CCAVCDemoVB\CCAVC.dll
C:\CCAVCDemoVB\LibAVC\(ffmpeg*.dll)
C:\CCAVCDemoVB\input.mpg
API 声明模块mCCAVC.bas
复制内容到剪贴板
代码:
Public Declare Function LoadAVLib Lib "C:\CCAVCDemoVB\CCAVC.dll" (ByVal APath As String, ByVal AWithVerNum As Boolean) As Boolean
Public Declare Sub UnloadAVLib Lib "C:\CCAVCDemoVB\CCAVC.dll" ()
Public Declare Function LastErrMsg Lib "C:\CCAVCDemoVB\CCAVC.dll" () As String
Public Declare Function AddInputFile Lib "C:\CCAVCDemoVB\CCAVC.dll" (ByVal AFileName As String, ByVal AOptions As Long) As Long
Public Declare Function SetOutputFile Lib "C:\CCAVCDemoVB\CCAVC.dll" (ByVal AInputIndex As Long, ByVal AFileName As String, ByVal AOptions As Long) As Boolean
Public Declare Sub ClearInputFiles Lib "C:\CCAVCDemoVB\CCAVC.dll" ()
Public Declare Sub RemoveInputFile Lib "C:\CCAVCDemoVB\CCAVC.dll" (ByVal AInputIndex As Long)
Public Declare Sub StartConvert Lib "C:\CCAVCDemoVB\CCAVC.dll" (ByVal AThreadCount As Long)
演示代码
模块叫mCCAVC,一个窗体叫Form1,一个按钮叫Command1,一个文本框叫Log
复制内容到剪贴板
代码:
Private Function LoadLibAV() As Boolean
Dim Ret As Boolean
Dim ErrMsg As String

    Ret = mCCAVC.LoadAVLib("C:\CCAVCDemoVB\LibAV\", True)
   
    If Ret = False Then
        ErrMsg = mCCAVC.LastErrMsg
        Log.Text = Log.Text & vbCrLf & ErrMsg
    End If
   
    LoadLibAV = Ret
End Function

Private Sub Command1_Click()
Dim Idx As Long
Dim ErrMsg As String
Dim Ret As Boolean

    If LoadLibAV = True Then
        Call mCCAVC.ClearInputFiles
        Idx = mCCAVC.AddInputFile("C:\CCAVCDemoVB\input.mpg", 0)
        If Idx < 0 Then
            ErrMsg = mCCAVC.LastErrMsg
            Log.Text = Log.Text & vbCrLf & ErrMsg
        Else
            Ret = mCCAVC.SetOutputFile(Idx, "C:\CCAVCDemoVB\output.flv", 0)
            If Ret = True Then
                Call mCCAVC.StartConvert(0)
            Else
                ErrMsg = mCCAVC.LastErrMsg
                Log.Text = Log.Text & vbCrLf & ErrMsg
                mCCAVC.RemoveInputFile Idx
            End If
        End If
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call mCCAVC.UnloadAVLib
End Sub
由于对VB不熟悉,所以,不知道怎么定义Delphi里面的结构体,不知道怎么响应Delphi里的事件。。。。

[ 本帖最后由 CodeCoolie 于 2008-5-3 20:31 编辑 ]

附件

CCAVC_dll.rar (190.53 KB)

2008-5-3 20:28, 下载次数: 26

超级简单易用的音视频转换组件 支持RMVB解码 FFmpeg for Delphi / VB

TOP

演示了从一个.mpg文件转为.flv的简单代码
超级简单易用的音视频转换组件 支持RMVB解码 FFmpeg for Delphi / VB

TOP

非常感谢,明天试试

TOP

友情UP!

很好,很强大!
Something you can see it. But you can never reach it.

TOP

苦力,你这是做什么?



大家都在吃饭,你上来掀饭锅么?

TOP

恕我直言:VB的代码很丑很垃圾
这么多年了,我一直没有发现那个语言的比C语言简洁与优美了。
Lost in AV world

TOP

引用:
原帖由 CodeCoolie 于 2008-5-3 20:28 发表
由于对VB不熟悉,所以,不知道怎么定义Delphi里面的结构体,不知道怎么响应Delphi里的事件。。。。
VB里面直接用Type定义结构体的
比如
Type Point
    X as long
    Y as long
end type

然后,Point就可以当成一般变量类型使用了
dim APoint as Point

TOP

引用:
原帖由 hiwmp 于 2008-5-4 01:49 发表
恕我直言:VB的代码很丑很垃圾
这么多年了,我一直没有发现那个语言的比C语言简洁与优美了。
多C多漂亮
多B多XX
C排在B后面,没B不行

TOP

引用:
原帖由 whom 于 2008-5-4 00:50 发表
苦力,你这是做什么?



大家都在吃饭,你上来掀饭锅么?
掀用C语言的ffmpeg牛们的饭锅,弄点粥给用Delphi和VB的来喝喝~

还请whom牛多指教~
超级简单易用的音视频转换组件 支持RMVB解码 FFmpeg for Delphi / VB

TOP

引用:
原帖由 5bxb 于 2008-5-4 06:04 发表


VB里面直接用Type定义结构体的
比如
Type Point
    X as long
    Y as long
end type

然后,Point就可以当成一般变量类型使用了
dim APoint as Point
我把C的头文件port到Delphi的,现在还要把Delphi的port到VB的,太郁闷了。。。

不管了,届时如果有用VB的感兴趣,我把相关数据结构、函数等声明的Delphi代码写post出来,用VB的兄弟自己动手吧。。。
超级简单易用的音视频转换组件 支持RMVB解码 FFmpeg for Delphi / VB

TOP

 32 1234
发新话题