ireader / media-server

RTSP/RTP/RTMP/FLV/HLS/MPEG-TS/MPEG-PS/MPEG-DASH/MP4/fMP4/MKV/WebM
MIT License
3.09k stars 1.08k forks source link

libmpeg muxer #46

Open aimybbe opened 5 years ago

aimybbe commented 5 years ago

libmpeg aac 8k 单声道 muxer 出来的test_aac.ps使用VLC无法播放声音,AAC单独写成ADTS+ES数据可以播放。

ireader commented 5 years ago

vlc 3.0.6播不了,vlc 2.2.4可以。

ireader commented 3 years ago

查了下vlc的代码,vlc 3.x之后新增了ps.h/ps.c解析mpeg-ps流。 https://github.com/videolan/vlc/blob/3.0.x/modules/demux/mpeg/ps.h

image

解析ps system header时,上面红框内的代码会初始化出音频track,如果此时还没有读到psm header,会默认为mp1/2的音频codec。

解决办法:

  1. 生成ps文件时先写psm再写system header
  2. 干脆不写system header
ireader commented 3 years ago

可以屏蔽libmpeg-ps-enc.c::ps_muxer_input 函数中生成system_header的代码

F3BA7E82E7E060DDC3B1FA3FF508F749

pretom commented 1 year ago

屏蔽了,写G711A,用vlc播还是没声音,用ffplay播放,提示Could not find codec parameters for stream 1 (Audio: mp2, 0 channels, s16p): unspecified frame size

ireader commented 1 year ago

上传一个小ts文件我分析下?