仅在没有音频编解码器的情况下编译ffmpeg解码

时间:2016-07-27 22:54:41

标签: vb.net windows video ffmpeg visual-studio-2015

我在媒体管理器上工作并使用ffmpeg.exe来提取屏幕截图。 最新大小的ffmpeg.exe超过35MB,我试图在没有大部分功能的情况下构建ffmpeg,只允许保存一帧视频。

我曾想过禁用许多过滤器,音频编解码器等会将ffmpeg的大小缩小到更易于管理的状态。

遵循本指南 https://pracucci.com/compile-ffmpeg-on-windows-with-visual-studio-compiler.html 为了允许使用Visual Studio 2015构建ffmpeg,我已经开始使用./configuration并打了一堵墙。 有这么多的选择,不知道他们所有的意思或做什么,我问的是社区中的某个人是否可以给我外行指示。

我也知道我需要构建x264和可能的x265(HEVC),但我不确定是否还需要其他编解码器。 最后,我和我希望只有一个文件,ffmpeg.exe用于媒体管理器项目。

我用来获取屏幕截图的代码如下

Public Shared Function CreateScreenShot(ByVal FullPathAndFilename As String, ByVal SavePath As String, ByVal sec As Integer, Optional ByVal Overwrite As Boolean = False) As Boolean
    If Not File.Exists(SavePath) Or Overwrite Then
        Try
            IO.File.Delete(SavePath)
        Catch
            Return False
        End Try
        If IO.File.Exists(FullPathAndFilename) Then
            Dim myProcess As Process = New Process
            Try
                Dim seconds As Integer = sec
                myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                myProcess.StartInfo.CreateNoWindow = False
                myProcess.StartInfo.FileName = Utilities.applicationPath & "\Assets\ffmpeg.exe"
                Dim proc_arguments As String = "-ss " & seconds.ToString & " -i """ & FullPathAndFilename & """ -vframes:v 1 -an " & """" & SavePath & """"
                myProcess.StartInfo.Arguments = proc_arguments
                myProcess.Start()
                myProcess.WaitForExit()
                If File.Exists(SavePath) Then Return True
            Catch ex As Exception
                Throw ex
            Finally
                myProcess.Close()
            End Try
        End If
    End If
    Return False
End Function

我希望这是足够的信息,并感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

有一个选项--disable-everything将禁用所有组件而不显式启用。

我猜你可能会尝试用它来构建它:

./configure --disable-everything --enable-libx264 --enable-libx265 --toolchain=msvc --enable-yasm --enable-asm

如果还需要其他编解码器,也应将它们添加到选项中。

如果不需要某些ffmpeg库,可以将它们禁用为:

./configure --disable-postproc

请参阅Component options输出中的./configure --help部分,了解如何禁用/启用这些库。