Exemple #1
0
        static FlvEncoder()
        {
            FlvHeader VideoFlvHeader = new FlvHeader(true, false);

            VideoFlvHeaderBuffer = VideoFlvHeader.ToArray().ToArray();
            PreviousTagSizeDict  = new ConcurrentDictionary <string, uint>();
            FrameInitDict        = new ConcurrentDictionary <string, bool>();
            H264Decoder          = new Flv.H264.H264Decoder();
        }
Exemple #2
0
        static FlvEncoder()
        {
            FlvHeader VideoFlvHeader = new FlvHeader(true, false);

            VideoFlvHeaderBuffer = VideoFlvHeader.ToArray().ToArray();
            VideoSPSDict         = new ConcurrentDictionary <string, SPSInfo>();
            FlvFrameInfoDict     = new ConcurrentDictionary <string, FlvFrameInfo>();
            FlvFirstFrameCache   = new ConcurrentDictionary <string, byte[]>();
            H264Decoder          = new Flv.H264.H264Decoder();
        }
Exemple #3
0
        /// <summary>
        /// 编码flv头
        /// </summary>
        /// <param name="hasVideo">是否有视频</param>
        /// <param name="hasAudio">是否有音频</param>
        /// <returns></returns>
        public byte[] EncoderFlvHeader(bool hasVideo = true, bool hasAudio = false)
        {
            var flvHeader = new FlvHeader(hasVideo, hasAudio);

            return(flvHeader.ToArray().ToArray());
        }
Exemple #4
0
 /// <summary>
 /// 编码flv头
 /// <para>
 /// 注意:本方法已写入<see cref="previousTagSize"/>
 /// </para>
 /// </summary>
 /// <param name="hasVideo"></param>
 /// <param name="hasAudio"></param>
 /// <returns></returns>
 public byte[] EncoderFlvHeader(bool hasVideo = true, bool hasAudio = false)
 {
     previousTagSize = 0;
     flvHeader       = new FlvHeader(hasVideo, hasAudio);
     return(flvHeader.ToArray().ToArray());
 }