[英]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.