在VB.NET中,我用ffmpeg
创建声音文件波形ffmpeg -i input -filter_complex "showwavespic=s=640x240:split_channels=1" -frames:v 1 output.png
这段代码很好用。但我根本没有在PC上的写权限,我无法在任何地方创建output.png。我必须将output.png作为流并将其作为背景图像放到图片框中。
请有人帮助我。
答案 0 :(得分:0)
基本方法是
ffmpeg -i input -filter_complex "..." -frames:v 1 -c:v png -f image2pipe -
这会将结果传输到stdout。
答案 1 :(得分:0)
我试图从视频中获取缩略图。以下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;
}
}