baidu_31083567
java-flash
2021-01-27 11:07

Accord.NET如何录制音视频,求指导

  • c#
  • visual studio

我目前只能用Accord.video录制一个mp4视频文件,用Accord.audio录制一个wav音频文件,然后用ffmpeg音视频合成,但是这样会导致音视频不同步,有没有Accord.net录制音视频文件的解决方案,求指导,急急急!

目前处理如下

视频

    private void VideoStart()
        {//开始录制时videoWriter打开MP4文件
            videoSourcePlayer.VideoSource = videoDevice;
            videoWriter = new Accord.Video.FFMPEG.VideoFileWriter();
            videoSourcePlayer.Start();
            videoWriter.Open(VideoPath, 640, 480); //可设置
        }

     private void videoSourcePlayer_NewFrameReceived(object sender, Accord.Video.NewFrameEventArgs args)
        {//录制过程实时写道文件里
            DateTime now = DateTime.Now;
            Graphics g = Graphics.FromImage(args.Frame);
            videoWriter.WriteVideoFrame(args.Frame);
            // paint current time
            SolidBrush brush = new SolidBrush(Color.Red);
            g.DrawString(now.ToString(), this.Font, brush, new PointF(5, 5));
            brush.Dispose();

            g.Dispose();
        }
 

音频

 private void AudioStop()
        {//录制时音频存到一内存中,结束时写道wav文件,这是按照accord的demo来的
            source.SignalToStop();
            source.WaitForStop();
            Stream fileStream = new FileStream(AudioPath, FileMode.OpenOrCreate);
            //VideoPath;
            stream.WriteTo(fileStream);
            fileStream.Close();
            stream.Dispose();
        }

ffmpeg音视频合成命令

ffmpeg -i "audio2.wav" -y "audio3.wav"

ffmpeg -i video2.flv -i audio3.wav -vcodec copy -acodec copy out1.flv

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

0条回答

为你推荐

换一换