从 NRECO.VideoConverter 访问 StandardInput?
Access to StandardInput from NRECO.VideoConverter?
我目前正在使用 this question 的答案将一串位图通过管道传输到 ffmpeg。它需要重定向 StandardInput 流并写入它。
NRECO.VideoConverter 有类似的东西吗?有没有办法访问 运行 进程,或者只访问 StandardInput 基本流?
如果你想向 stdin 提供输入数据或从 stdout 读取输出数据(或两者),你可以使用 ConvertLiveMedia
方法;它具有针对不同使用场景的重载:
var videoConv = new FFMpegConverter();
var ffMpegTask = videoConv.ConvertLiveMedia(
"rawvideo",
h264stream,
"h264",
new ConvertSettings() {
CustomInputArgs = String.Format(" -pix_fmt bgr24 -video_size 640x480 -framerate 5 ",
frameBmp.Width, frameBmp.Height)
});
ffMpegTask.Start();
ffMpegTask.Write( bmpBytes ); // call N times for each input frame. Image size should be exactly 640x480
ffMpegTask.Stop();
如果需要,您可以为 "image2pipe" 采用此代码段。
我目前正在使用 this question 的答案将一串位图通过管道传输到 ffmpeg。它需要重定向 StandardInput 流并写入它。
NRECO.VideoConverter 有类似的东西吗?有没有办法访问 运行 进程,或者只访问 StandardInput 基本流?
如果你想向 stdin 提供输入数据或从 stdout 读取输出数据(或两者),你可以使用 ConvertLiveMedia
方法;它具有针对不同使用场景的重载:
var videoConv = new FFMpegConverter();
var ffMpegTask = videoConv.ConvertLiveMedia(
"rawvideo",
h264stream,
"h264",
new ConvertSettings() {
CustomInputArgs = String.Format(" -pix_fmt bgr24 -video_size 640x480 -framerate 5 ",
frameBmp.Width, frameBmp.Height)
});
ffMpegTask.Start();
ffMpegTask.Write( bmpBytes ); // call N times for each input frame. Image size should be exactly 640x480
ffMpegTask.Stop();
如果需要,您可以为 "image2pipe" 采用此代码段。