Ffmpeg 使用Xugle对HTTP实时流媒体进行编码

Ffmpeg 使用Xugle对HTTP实时流媒体进行编码,ffmpeg,video-encoding,http-live-streaming,xuggle,xuggler,Ffmpeg,Video Encoding,Http Live Streaming,Xuggle,Xuggler,我创建了一个基于Xugle的服务器系统,将传入文件编码为H264并对其进行分段。然而,当在Quicktime中播放视频时,它几乎可以正常工作(有时音频中会出现小的停顿),但当从一个质量流切换到另一个质量流时,图像会丢失 因此,我运行了“mediastreamvalidator”,并得到以下错误: 错误:(-1)未知视频编解码器:1836069494(程序0,曲目0) 错误:(-1)无法将段解析为MPEG-2 TS或ES 因此,我使用FFMPEG获得了一些有关该法典的信息: 我的Xuggler编码

我创建了一个基于Xugle的服务器系统,将传入文件编码为H264并对其进行分段。然而,当在Quicktime中播放视频时,它几乎可以正常工作(有时音频中会出现小的停顿),但当从一个质量流切换到另一个质量流时,图像会丢失

因此,我运行了“mediastreamvalidator”,并得到以下错误:

错误:(-1)未知视频编解码器:1836069494(程序0,曲目0) 错误:(-1)无法将段解析为MPEG-2 TS或ES

因此,我使用FFMPEG获得了一些有关该法典的信息: 我的Xuggler编码的结果:

Input #0, mpegts, from 'segment_0.ts':
  Duration: 00:00:09.40, start: 0.000000, bitrate: 3618 kb/s
  Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0.0[0x100]: Video: mpeg2video (Main), yuv420p, 960x540 [PAR 1:1 DAR 16:9], 104857 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0.1[0x101]: Audio: mp2, 48000 Hz, stereo, s16, 128 kb/s
压缩程序创建的文件的结果:

Seems stream 0 codec frame rate differs from container frame rate: 180000.00 (180000/1) -> 25.00 (25/1)
Input #0, mpegts, from 'fileSequence1.ts':
  Duration: 00:00:09.97, start: 19.984578, bitrate: 5308 kb/s
  Program 1 
    Stream #0.0[0x101]: Video: h264 (Main), yuv420p, 960x540, 25 tbr, 90k tbn, 180k tbc
    Stream #0.1[0x102]: Audio: aac, 22050 Hz, stereo, s16, 32 kb/s
在我看来,主要的区别在于,对于Xugler编码的文件,它显示的是Video:mpeg2video而不是h264。但是,在编码时,我确实专门将编码器设置为ICodec.ID.CODEC\u ID\u H264

如何强制它使用h264。音频也一样。我指定了AAC并获得了MP2

我随后直接使用FFMPEG,结果是:

Input #0, mpegts, from 'encoded.ts':
  Duration: 00:00:24.16, start: 1.400000, bitrate: 360 kb/s
  Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0.0[0x100]: Video: h264 (Main), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0.1[0x101](eng): Audio: aac, 48000 Hz, stereo, s16, 57 kb/s

看起来好多了。我可以直接使用FFMPEG,但通过使用Xugler,我可以分割文件,同时更容易跟踪过程的进度。

我暂时离开Xugle,使用FFMPEG进行编码和分割,只用于获取编码信息等。 目前需要两个过程(首先编码,然后使用FFMPEG分段),但希望很快FFMPEG将允许在编码时动态分段