gpt4 book ai didi

c# - 如何使用 c#asp.net 为 ffmpeg 制作加载屏幕

转载 作者:行者123 更新时间:2023-12-04 23:09:37 24 4
gpt4 key购买 nike

我有这个功能,Debug.WriteLine 命令在哪里是我输出值的地方。如何将这些数据打印到网页中,以便模拟加载屏幕?我通过 *.ashx Web 服务文件在外部调用此函数。

private string ConvertToFLV(string phyicalFilePath)
{
if (Path.GetExtension(phyicalFilePath).Equals(".flv")) return phyicalFilePath;

var argument = string.Format(@"-i ""{0}"" -vcodec flv -f flv -r 29.97 -s 320x240 -aspect 4:3 -b 300k -g 160 -cmp dct -subcmp dct -mbd 2 -flags +aic+cbp+mv0+mv4 -trellis 1 -ac 1 -ar 22050 -ab 56k ""{1}""", phyicalFilePath, Path.ChangeExtension(phyicalFilePath, "flv"));
libfaac -ar 48000 -ab 128k -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -threads 0 {1}", phyicalFilePath, Path.ChangeExtension(phyicalFilePath, "mp4"));
File.Delete(Path.ChangeExtension(phyicalFilePath, "flv"));

ProcessStartInfo process = new ProcessStartInfo(ffmpegPhysicalPath, argument);
Process proc = new Process();
float duration = 0.00F, current = 0.00F;
proc.StartInfo = process;
proc.EnableRaisingEvents = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;

proc.Start();

StreamReader d = proc.StandardError;

do
{
string s = d.ReadLine();
if (s.Contains("Duration: "))
{
Debug.WriteLine("DURATION: " + s);

}
else
{
if (s.Contains("frame="))
{
Debug.WriteLine("FRAME: " + s);

}
}
} while (!d.EndOfStream);


proc.WaitForExit();

return Path.ChangeExtension(phyicalFilePath, "flv");

最佳答案

你需要将你的流写到一些可以被网络请求读取的数据存储中。您将无法像我认为您想要的那样处理此流。例如,将此数据写入缓存/数据库并让客户端不断读取它。
您可以尝试一些“较新”的东西,例如 SignalR,并尝试将其流式传输到客户端,尽管这仍然需要从共享存储中读取它。因此,您的 Debug.WriteLines 将改为写入队列的方法。您的客户端将从队列中读取并删除这些消息。

如果您对实时持久连接感兴趣,请查看 Scott Hanselman 的帖子:

AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR

关于c# - 如何使用 c#asp.net 为 ffmpeg 制作加载屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7266182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com