簡體   English   中英

ffmpeg:如何將AAC音頻數據包轉換為ADTS格式

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM