在VB.NET中,我用ffmpeg创建声音文件波形
ffmpeg -i input -filter_complex "showwavespic=s=640x240:split_channels=1" -frames:v 1 output.png
这段代码很好用。但我根本没有在PC上的写权限,我无法在任何地方创建output.png。我必须得到output.png作为流并作为背景图像放到picturebox。
有谁可以帮助我吗。
基本方法是
ffmpeg -i input -filter_complex "..." -frames:v 1 -c:v png -f image2pipe -
这将通过stdout传输结果。
我试图从视频中获取缩略图。 C#中的以下代码用于将图像作为Web API的响应返回。
public IActionResult VideoThumbnail([FromBody] JObject jObject)
{
dynamic obj = jObject;
var url = obj.path.ToString();
FileStream stream = GetThumbnail(url) as FileStream;
return File(stream, "image/bmp");
}
public static Stream GetThumbnail(string url)
{
var cmd = "ffmpeg -itsoffset -1 -i " + '"' + video + '"' + " -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 -";
using (Process process = new Process())
{
var startInfo = new ProcessStartInfo
{
WindowStyle = ProcessWindowStyle.Hidden,
FileName = "cmd.exe",
Arguments = "/C " + cmd,
RedirectStandardOutput = true,
RedirectStandardError = true
};
process.StartInfo = startInfo;
process.Start();
Stream stream = process.StandardOutput.BaseStream;
process.WaitForExit(5000);
return stream;
}
}