gpt4 book ai didi

.net-core - 使用 ffmpeg 管道选项将转换后的视频导出为流

转载 作者:行者123 更新时间:2023-12-04 23:10:22 27 4
gpt4 key购买 nike

我正在流式传输并成功将转换后的视频输出到 mkv 文件中。

var stream = ..incoming stream of type MemoryStream();
var process = new System.Diagnostics.Process();
process.StartInfo.Arguments = "-f mp4 -i pipe:0 -c:v libx264 -crf 20 -s 600:400 -f matroska myfile.mkv";
process.Start();
process.StandardInput.BaseStream.Write(stream.ToArray())
process.BeginOutputReadLine()
process.StandardInput.BaseStream.Close();
process.WaitForExit(1000);
我的问题是:如何更改实现(命令和 StandardOutput.BaseStream 以便将结果导出到内存流而不是文件中(就像在上面的示例中一样)。

最佳答案

您在刚刚删除的问题中所做的事情是正确的,

-f mp4 -i pipe:0 -c:v libx264 -crf 20 -s 600:400 -f matroska pipe:1
让您将输出写入管道。但是您可能会遇到死锁,因为 FFmpeg 不会读取 stream.ToArray() 的全部内容。立刻。它只读取生成下一个输出数据帧所需的内容。
因此,您需要在程序上运行至少 2 个线程,一个用于写入 FFmpeg,另一个用于从 FFmpeg 读取。不幸的是,我不熟悉 .net,所以我无法帮助您了解实际操作方法,但希望这个答案能为您指明正确的方向。

关于.net-core - 使用 ffmpeg 管道选项将转换后的视频导出为流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71092763/

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