“FFmpeg 经验小结”的版本间的差异

来自艺搜天下
跳到导航 跳到搜索
 
(未显示同一用户的3个中间版本)
第1行: 第1行:
 +
==音频编码==
 
libfdk_aac编码时不支持FLTP,使用libfdk_aac解码时可以通过设置
 
libfdk_aac编码时不支持FLTP,使用libfdk_aac解码时可以通过设置
 
  c->request_sample_fmt = AV_SAMPLE_FMT_S16;
 
  c->request_sample_fmt = AV_SAMPLE_FMT_S16;
第7行: 第8行:
 
==帧的采样数==
 
==帧的采样数==
 
  c->frame_size; //等于 frame->nb_samples
 
  c->frame_size; //等于 frame->nb_samples
 +
 +
==音频编码时间戳==
 +
libfdk_aac第一个包的时间戳是-2048,aac是-1024,与采样率和声道数无关。
 +
==封装格式的time_base==
 +
flv:1/1000  flvenc.c中    avpriv_set_pts_info(s->streams[i], 32, 1, 1000); /* 32 bit pts in ms */
 +
 +
mkv:1/1000 matroskaenc.c中avpriv_set_pts_info(s->streams[i], 64, 1, 1000);
 +
 +
ts:1/9万  mpegtsenc.c中  avpriv_set_pts_info(st, 33, 1, 90000);
 +
 
[[Category:FFmpeg]]
 
[[Category:FFmpeg]]
 +
==参考==
 +
[https://www.jianshu.com/p/7b5c891fc598 各种封装格式的time_base]

2019年7月9日 (二) 01:39的最新版本

音频编码

libfdk_aac编码时不支持FLTP,使用libfdk_aac解码时可以通过设置

c->request_sample_fmt = AV_SAMPLE_FMT_S16;
c->request_channel_layout = AV_CH_LAYOUT_MONO;

直接将音频解码成s16单声道的,从而

fwrite(frame->data[0], 1, frame->linesize[0], outfile);

保存就可以播放,不需要转换格式。

帧的采样数

c->frame_size; //等于 frame->nb_samples

音频编码时间戳

libfdk_aac第一个包的时间戳是-2048,aac是-1024,与采样率和声道数无关。

封装格式的time_base

flv:1/1000 flvenc.c中 avpriv_set_pts_info(s->streams[i], 32, 1, 1000); /* 32 bit pts in ms */

mkv:1/1000 matroskaenc.c中avpriv_set_pts_info(s->streams[i], 64, 1, 1000);

ts:1/9万 mpegtsenc.c中 avpriv_set_pts_info(st, 33, 1, 90000);

参考

各种封装格式的time_base