Ich versuche, ein C-Programm zu schreiben, das Audio aus einer MP4-Datei demuxiert und demuxed AVPacket-Daten in eine Datei schreibt. Dem resultierenden Speicherabbild fehlen jedoch ADTS-Header. Beliebige Hinweise darauf, wie ADTS-Header am besten hinzugefügt werden können.ffmpeg: Wie AAC Audio-Pakete in ADTS-Format konvertieren
Ich sehe, dass ffmpeg 'adtsenc.c' Datei hat, die eine ADTS muxer zu implementieren scheint:
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,
};
Die besten Wünsche.
MP4-Dateien enthalten normalerweise keine ADTS-Header, da sie [wären überflüssig] wären (https://en.wikipedia.org/wiki/Advanced_Audio_Coding#Container_formats). Wenn Sie Daten als "nackte" aac-Dateien speichern, fügt FFmpeg ADTS-Header hinzu. – AkselA
Danke AkselA für Ihren Kommentar. Ich denke, Sie zeigen mir die richtige Richtung. Könnten Sie mir eine Idee geben, was ich tun muss, um Daten als "nackte" aac-Datei zu speichern? Ich schätze die Hilfe sehr. – Malik