我创建了一个基于Xuggle的服务器系统,将传入的文件编码为H264并将其分割。然而,当在Quicktime中播放视频时,它几乎可以工作(有时在音频中出现一个小问题),但是当从一个质量流切换到另一个质量流时,图像就会丢失。
所以我运行了‘纵隔验证器’,得到了以下错误:
错误:(-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在我看来,主要的不同之处在于,对于Xuggler编码的文件,它说的是视频: 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,我可以分割文件,同时更容易地跟踪进程的进展。
发布于 2012-05-26 13:47:26
我暂时离开了Xuggle,使用FFMPEG进行编码和分段,只用于获取编码信息等。目前需要两个进程(首先编码,然后用FFMPEG分段),但希望FFMPEG很快就允许在编码的同时进行分段。
https://stackoverflow.com/questions/10402600
复制相似问题