Entfernen von MP4-Codierungsinformationen

Ist es möglich, bestimmte Informationen aus einer MP4-Datei zu entfernen? Insbesondere Dinge wie das Markieren und Kodieren von Daten, das Schreiben von Bibliotheken und Anwendungen, Kodierungseinstellungen ... Kein Client muss wissen, wann ich etwas kodiert habe oder welche Software und Einstellungen ich verwendet habe.

Meine einzige Vermutung war, die Datei mit ffmpeg zu remuxen, aber das entfernt nur die Daten und ersetzt die Schreibanwendungsinformationen durch das allgemeinere Lavf.

Ich arbeite übrigens unter Windows, aber MacOS und Linux (Ubuntu) würden auch funktionieren.

Antworten (2)

Normales ffmpeg wird dies nicht tun. Sie benötigen eine Kombination aus zwei Werkzeugen, um dies auszuführen.

#1 Verwenden Sie ffmpeg von direct264, eine modifizierte Version eines alten ffmpeg-Builds mit einem benutzerdefinierten Filter, um H264-Bitstreams zu modifizieren. Dieser Build ist auf die meisten anderen Arten verkrüppelt, also benennen Sie ihn um oder legen Sie ihn nicht in Ihren Pfad.

ffmpeg -i in.mp4 -vcodec copy -acodec copy -vbsf h264_changesps=removesei -map_metadata -1 out.mp4

#2 Verwenden Sie mp4box aus der GPAC -Suite, um die Metadaten der Schreibanwendung zu entfernen

mp4box -add out.mp4 -new stripped.mp4

Verwenden Sie den Bitstream-Filter filter_unitsmit ffmpeg 4.0 oder neuer.

ffmpeg -i INPUT -c copy -bsf:v 'filter_units=remove_types=6' OUTPUT

PS

/* NAL unit types */
enum {
    H264_NAL_SLICE           = 1,
    H264_NAL_DPA             = 2,
    H264_NAL_DPB             = 3,
    H264_NAL_DPC             = 4,
    H264_NAL_IDR_SLICE       = 5,
    H264_NAL_SEI             = 6,
    H264_NAL_SPS             = 7,
    H264_NAL_PPS             = 8,
    H264_NAL_AUD             = 9,
    H264_NAL_END_SEQUENCE    = 10,
    H264_NAL_END_STREAM      = 11,
    H264_NAL_FILLER_DATA     = 12,
    H264_NAL_SPS_EXT         = 13,
    H264_NAL_AUXILIARY_SLICE = 19,
};
Ja, das ist jetzt direkt möglich.