嗨我想用ffmpeg编写一个vb.net应用程序。是否有任何可能的方法来运行ffmpeg而不将ffmpeg.exe放在应用程序路径中或没有任何硬编码路径?
可以在Windows服务应用程序中使用ffmpeg的任何硬编码路径吗?
Process.Start("cmd.exe", "/k c:/ffmpeg/bin/ffmpeg.exe -i rtsp://198.168.1.40/cam -map 0:0 -map 0:1 -s -vcodec libx264 -g 60 -vb 500000 -strict experimental %03d.ts")
答案 0 :(得分:3)
您可以为Windows运行时编译FFmpeg库并链接它们。
这里有一个指南: https://trac.ffmpeg.org/wiki/CompilationGuide/WinRT
Microsoft还released一个FFmpegInterop library。这对于播放非常有用,因为它实现了MediaStreamSource
。
答案 1 :(得分:1)
如果您没有将其与您的应用程序一起包含,您是否必须 提供硬编码路径?我想您可以在配置文件中将路径添加为appSetting
。
我将它作为资源包含在我的程序集中,并通过应用程序目录中的路径引用它:
_ffmpeg = My.Application.Info.DirectoryPath & "\Resources\ffmpeg.exe"
正如您所指出的那样,使用Process.Start
开始,但是直接调用ffmpeg而不是cmd。
Dim _FFmpegProcessPropertys As New ProcessStartInfo
_FFmpegProcessPropertys.FileName = _ffmpeg
_FFmpegProcessPropertys.Arguments = Params
_FFmpegProcessPropertys.UseShellExecute = False
_FFmpegProcessPropertys.RedirectStandardOutput = True
_FFmpegProcessPropertys.RedirectStandardError = True
_FFmpegProcessPropertys.CreateNoWindow = True
Dim FFmpegProcess = Process.Start(_FFmpegProcessPropertys)