在vb.net服务应用程序中使用ffmpeg

时间:2015-09-29 09:57:29

标签: vb.net ffmpeg

嗨我想用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")

2 个答案:

答案 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)

enter image description here