1

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

所以我运行了'mediastreamvalidator'并得到了以下错误:

错误:(-1)未知的视频编解码器:1836069494(程序 0,轨道 0)错误:(-1)未能将段解析为 MPEG-2 TS 或 ES

所以我使用 FFMPEG 来获取有关 codex 的一些信息:我的 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

Compressor 创建的文件的结果:

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

在我看来,主要区别在于 Xuggler 编码文件显示的是 Video: mpeg2video 而不是 h264。但是,在编码时,我确实将 Coder 设置为 ICodec.ID.CODEC_ID_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,但是通过使用 Xuggler,我可以分割文件,同时更容易跟踪过程的进度。

4

1 回答 1

0

我暂时离开 Xuggle 并使用 FFMPEG 进行编码和分段,仅使用它来获取编码信息等。目前需要两个过程(首先编码,然后使用 FFMPEG 分段),但希望很快 FFMPEG 将允许分段编码时的苍蝇

于 2012-05-26T13:47:26.577 回答