können Sie nur Rohvideos bekommen Bilder in entweder BGRA oder YUV-Farbformate von AVFoundation. Wenn Sie diese Frames jedoch über AVAssetWriter in einen mp4 schreiben, werden sie mit der H264-Codierung codiert.
Ein gutes Beispiel mit dem Code auf, wie das zu tun ist, RosyWriter
Beachten Sie, dass nach jedem AVAssetWriter schreiben, werden Sie wissen, dass ein kompletter H264 NAL auf eine mp4 geschrieben wurde. Sie könnten Code schreiben, der nach jedem Schreiben durch AVAssetWriter eine vollständige H264-NAL liest, die Ihnen Zugriff auf einen H264-codierten Rahmen geben wird. Es kann ein wenig dauern, um es mit anständiger Geschwindigkeit richtig zu machen, aber es ist machbar (ich habe es erfolgreich gemacht).
Übrigens, um diese codierten Videoframes erfolgreich zu decodieren, benötigen Sie H264 SPS- und PPS-Informationen, die sich an einer anderen Stelle in der mp4-Datei befinden. In meinem Fall erstelle ich tatsächlich einige Test-MP4-Dateien und extrahiere diese dann manuell heraus. Da sich diese nicht ändern, außer Sie ändern die H264-kodierten Spezifikationen, können Sie sie in Ihrem Code verwenden.
Überprüfen Sie meine Post zu SPS values for H 264 stream in iPhone, um einige der SPS/PPS zu sehen, die ich in meinem Code verwendete.
Nur eine letzte Anmerkung, in meinem Fall musste ich h264-kodierte Frames zu einem anderen Endpunkt für die Dekodierung/Betrachtung streamen; also musste mein Code das schnell machen.In meinem Fall war es relativ schnell; aber irgendwann wechselte ich zu VP8 für die Kodierung/Dekodierung, nur weil es viel schneller war, weil alles im Speicher ohne Datei lesen/schreiben gemacht wurde.
Viel Glück, und hoffentlich hilft diese Info.