Index: tests/phpunit/tests/media.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/tests/phpunit/tests/media.php b/tests/phpunit/tests/media.php
--- a/tests/phpunit/tests/media.php	(revision 5c041f5777689afe49cf99dd7c897f6b81d248c7)
+++ b/tests/phpunit/tests/media.php	(date 1658133960799)
@@ -2811,6 +2811,25 @@
 		$this->assertSame( 1269120551, $metadata['created_timestamp'] );
 	}
 
+	/**
+	 * @ticket 56217
+	 */
+	public function test_wp_read_video_metadata_adds_rotation_with_quicktime() {
+
+		$video    = DIR_TESTDATA . '/uploads/rotated-video-180.mov';
+		$metadata = wp_read_video_metadata( $video );
+
+		$this->assertArrayHasKey('rotate', $metadata );
+		$this->assertEquals( 180, $metadata['rotate'] );
+
+		$video    = DIR_TESTDATA . '/uploads/rotated-video-270.mov';
+		$metadata = wp_read_video_metadata( $video );
+
+		$this->assertArrayHasKey('rotate', $metadata );
+		$this->assertEquals( 270, $metadata['rotate'] );
+
+	}
+
 	/**
 	 * @ticket 10752
 	 */
Index: src/wp-admin/includes/media.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/wp-admin/includes/media.php b/src/wp-admin/includes/media.php
--- a/src/wp-admin/includes/media.php	(revision 5c041f5777689afe49cf99dd7c897f6b81d248c7)
+++ b/src/wp-admin/includes/media.php	(date 1657786814120)
@@ -3605,6 +3605,10 @@
 		$metadata['audio'] = $data['audio'];
 	}
 
+	if ( ! empty( $data['video']['rotate'] ) ) {
+		$metadata['rotate'] = $data['video']['rotate'];
+	}
+
 	if ( empty( $metadata['created_timestamp'] ) ) {
 		$created_timestamp = wp_get_media_creation_timestamp( $data );
 
