Example #1
0
        public FileConsumer(string filename, bool singleFrames = false)
        {
            _fileName         = filename;
            _dumpSingleFrames = singleFrames;
            _videoAssembler   = new VideoAssembler();
            _audioAssembler   = new AudioAssembler();

            if (!singleFrames)
            {
                _videoFile = new FileStream($"{filename}.video.raw", FileMode.Create);
                _audioFile = new FileStream($"{filename}.audio.raw", FileMode.Create);
            }
        }
Example #2
0
        void IAudioConsumer.ConsumeAudioData(object sender, AudioDataEventArgs args)
        {
            AACFrame frame = AudioAssembler.AssembleAudioFrame(
                args.AudioData, AACProfile.LC, 48000, 2);

            if (frame == null)
            {
                return;
            }

            if (_dumpSingleFrames)
            {
                string frameFilename = $"{_fileName}.audio.{audioFrameCount}.{frame.TimeStamp}.raw";
                using (FileStream fs = new FileStream(frameFilename, FileMode.CreateNew))
                {
                    fs.Write(frame.RawData, 0, frame.RawData.Length);
                }
                audioFrameCount++;
            }
            else
            {
                _audioFile.Write(frame.RawData, 0, frame.RawData.Length);
            }
        }