C#控制台调用FFMPEG推MP4视频文件至流媒体开源服务平台EasyDarwin过程

之前写过一篇科普文《如何使用RTSP推流组件EasyPusher将MP4文件推到EasyDarwin开源平台》,在该文中 ,我们尝试了通过EasyPusher将MP4文件推到EasyDarwin,但是除了这个方法之外,我们还有其他方法将MP4文件推送到EasyDarwin上。

本文就和大家分享一下C#控制台调用FFMPEG推MP4视频文件至流媒体开源服务平台EasyDarwin过程。

1、新建一个控制台应用项目,将下载好的FFMPEG放在程序根目录下面,如下图:

在main函数中写如下代码:

static void Main(string[] args)
        {
            string exePath = "./ffmpeg/bin/ffmpeg.exe";
            string arguments = "";
            arguments = "-re -stream_loop -1 -i test.mp4 -vf ";
            arguments += "settb=AVTB,setpts='trunc(PTS/1K)*1K+st(1,trunc(RTCTIME/1K))-1K*trunc(ld(1)/1K)',drawtext=fontsize=20:fontcolor=white:text='%{localtime}'";
            arguments += " -rtsp_transport tcp -vcodec h264 -f rtsp  rtsp://127.0.0.1:554/test2.sdp";
            ProcessStartInfo info = new ProcessStartInfo(exePath, arguments);
            info.WindowStyle = ProcessWindowStyle.Hidden;
            info.UseShellExecute = false;
            info.RedirectStandardInput = false;//可能接受来自调用程序的输入信息
            info.RedirectStandardOutput = false;//由调用程序获取输出信息
            info.RedirectStandardError = false;//重定向标准错误输出
            info.CreateNoWindow = false;//不显示程序窗口
            Process AppProcess = System.Diagnostics.Process.Start(info);
            AppProcess.WaitForExit();

        }

2、运行控制台程序,可以看到已经将程序目录下的test.mp4视频以RTSP形式推送至EasyDarwin,我们看下流媒体服务器EasyDarwin的运行情况:

可以用VLC查看实际播放效果,如下图:

如果有用户想了解我们的开源项目,可以进入EasyDarwin了解,并且经过多年的经验积累,我们已经研发出了基于EasyDarwin衍生的EasyNVR、EasyDSS等视频平台,大家均可了解。如有疑问,欢迎咨询。

原文地址:https://www.cnblogs.com/TSINGSEE/p/14037429.html