- 博客(6)
- 资源 (7)
- 收藏
- 关注
原创 ffmpeg修改flv打包aac声道部分
ffmpeg默认的flv打包输出aac的音频是44100的采样率、双声道、16位数据格式,但flv格式是可以支持其它参数的,因此需要修改flvenc.c在get_audio_flags函数中,有这段代码:if (enc->codec_id == AV_CODEC_ID_AAC) // specs force these parameters return FLV_CO
2015-04-18 14:55:30 2879
原创 ffmpeg修改源码添加flv对pcm的打包支持
flv支持的音频包含pcm_mulaw和pcm_alaw但使用ffmpeg打包输出的文件使用解码器打开发现无法真确得到音频的格式信息,分析源码发现除了AAC、H264、MPEG4之外,其余的格式信息未被写入到流中,修改flvenc.c,找到flv_write_header函数,在函数最后写格式信息部分修改如下: for (i = 0; i nb_streams; i++) {
2015-04-18 14:54:32 2871
原创 ffmpeg添加MP4的pcm音频支持
ffmpeg中对MP4的打包处理是在movenc.c中,在实际打包过程中发现除了mov类型外,其它类型如vob等均无法生成音频的声道信息,经过分析发现在mov_write_audio_tag函数的最后有如下代码 if (track->mode == MODE_MOV && track->enc->codec_type == AVMEDIA_TYPE_AUDIO) mov_
2015-04-18 14:54:01 9590 10
原创 ffmpeg添加mpeg ts对pcm的支持
在mpegtsenc.c的mpegts_write_pmt函数中,switch(st->codec->codec_id)的case中,添加如下代码 case AV_CODEC_ID_PCM_MULAW: stream_type = 0x91; break; case AV_CODEC_ID_
2015-04-18 14:51:39 6830 3
原创 ffmpeg添加mpeg ps流的pcm的编码支持
ffmpeg的mpegenc.c中,缺少了psm头的写入,而ps流的封包应当是ps,即pes在写入sys头之后写pes之前应当先写入psm头,因此mpegenc.c中需要增加写入psm头的函数,如下:static uint8_t get_stream_type(int stream_codec_id){ uint8_t res = 0;
2015-04-18 14:51:29 3517 1
原创 ffmpeg添加mpeg ps流的pcm的解码支持
ffmpeg原本不支持mpeg ps流,原因有两个。首先在编码时,ffmpeg没有在流中写入psm头;其次,在解码时,只在读文件头的时候判断了流的类型,而ps流中,流类型是在psm头中的,这样ffmpeg会读不到流类型。 要解决读不到媒体类型的问题,需要在mpeg.c函数中mpegps_read_packet函数中做修改,该函数是读取ps包的,如果每个ps包都有psm头,那么到此时流类型
2015-04-18 14:48:12 5910 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人