[英]ffmpeg: How to convert AAC audio packets to ADTS format
我正在尝试编写一个C程序,它将来自MP4文件的音频解复用,并将解复用的AVPacket数据写入文件。 但是生成的转储缺少ADTS标头。 有关添加ADTS标头的最佳方法的任何指示。
我看到ffmpeg有'adtsenc.c'文件似乎实现了ADTS复用器:
AVOutputFormat ff_adts_muxer = {
.name = "adts",
.long_name = NULL_IF_CONFIG_SMALL("ADTS AAC (Advanced Audio Coding)"),
.mime_type = "audio/aac",
.extensions = "aac,adts",
.priv_data_size = sizeof(ADTSContext),
.audio_codec = AV_CODEC_ID_AAC,
.video_codec = AV_CODEC_ID_NONE,
.write_header = adts_write_header,
.write_packet = adts_write_packet,
.write_trailer = adts_write_trailer,
.priv_class = &adts_muxer_class,
.flags = AVFMT_NOTIMESTAMPS,
};
最好的祝愿。
更新:我知道命令行demuxing在您尝试时实现了放置ADTS标头:
ffmpeg -i input.mp4 -acodec copy -vn output.aac
我检查过这个过程是使用adts.c即ADTS muxer通过调用来实现这个目的:
adts_write_header()
adts_write_packet()
adts_write_packet()
.....
adts_write_trailer()
我需要弄清楚如何在我的程序中使用它。 如果我搞清楚的话,我会发布更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.