Index: src/wp-admin/includes/media.php
===================================================================
--- src/wp-admin/includes/media.php	(revision 36084)
+++ src/wp-admin/includes/media.php	(working copy)
@@ -3026,6 +3026,10 @@
 		$metadata['audio'] = $data['audio'];
 	}
 
+	if ( empty( $metadata['created_timestamp'] ) ) {
+		$metadata['created_timestamp'] = wp_get_media_creation_timestamp( $data );
+	}
+
 	wp_add_id3_tag_data( $metadata, $data );
 
 	return $metadata;
@@ -3077,6 +3081,51 @@
 }
 
 /**
+ * Attempt to parse a date out of ID3 data.
+ *
+ * The getID3 library doesn't have a standard method for getting creation dates,
+ * so the location of this data can vary based on the MIME type.
+ *
+ * @since 4.5.0
+ *
+ * @link https://github.com/JamesHeinrich/getID3/blob/master/structure.txt
+ *
+ * @param array $metadata The metadata returned by getID3::analyze().
+ * @return int|bool A UNIX timestamp for the media's creation date if available
+ *                  or a boolean FALSE if a timestamp could not be determined.
+ */
+function wp_get_media_creation_timestamp( $metadata ) {
+	$creation_date = false;
+
+	if ( empty( $metadata['fileformat'] ) ) {
+		return $creation_date;
+	}
+
+	switch ( $metadata['fileformat'] ) {
+		case 'asf':
+			if ( isset( $metadata['asf']['file_properties_object']['creation_date_unix'] ) ) {
+				$creation_date = (int) $metadata['asf']['file_properties_object']['creation_date_unix'];
+			}
+			break;
+
+		case 'matroska':
+			if ( isset( $metadata['matroska']['comments']['creation_time']['0'] ) ) {
+				$creation_date = strtotime( $metadata['matroska']['comments']['creation_time']['0'] );
+			}
+			break;
+
+		case 'quicktime':
+		case 'mp4':
+			if ( isset( $metadata['quicktime']['moov']['subatoms']['0']['creation_time'] ) ) {
+				$creation_date = (int) $metadata['quicktime']['moov']['subatoms']['0']['creation_time'];
+			}
+			break;
+	}
+
+	return $creation_date;
+}
+
+/**
  * Encapsulate logic for Attach/Detach actions
  *
  * @since 4.2.0
Index: tests/phpunit/data/videos/mkv.mkv
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tests/phpunit/data/videos/mkv.mkv
===================================================================
--- tests/phpunit/data/videos/mkv.mkv	(revision 0)
+++ tests/phpunit/data/videos/mkv.mkv	(working copy)

Property changes on: tests/phpunit/data/videos/mkv.mkv
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tests/phpunit/data/videos/mp4.m4v
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tests/phpunit/data/videos/mp4.m4v
===================================================================
--- tests/phpunit/data/videos/mp4.m4v	(revision 0)
+++ tests/phpunit/data/videos/mp4.m4v	(working copy)

Property changes on: tests/phpunit/data/videos/mp4.m4v
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tests/phpunit/data/videos/quicktime.mov
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: tests/phpunit/data/videos/quicktime.mov
===================================================================
--- tests/phpunit/data/videos/quicktime.mov	(revision 0)
+++ tests/phpunit/data/videos/quicktime.mov	(working copy)

Property changes on: tests/phpunit/data/videos/quicktime.mov
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tests/phpunit/tests/media.php
===================================================================
--- tests/phpunit/tests/media.php	(revision 36084)
+++ tests/phpunit/tests/media.php	(working copy)
@@ -1177,4 +1177,90 @@
 		// Intermediate sized GIFs should not include the full size in the srcset.
 		$this->assertFalse( strpos( wp_calculate_image_srcset( $size_array, $large_src, $image_meta ), $full_src ) );
 	}
+
+	/**
+	 * @ticket 35218
+	 */
+	function test_wp_get_media_creation_timestamp_video_asf() {
+		$this->markTestIncomplete( 'Need to verify ASF structure' );
+
+		$metadata = array(
+			'fileformat' => 'asf',
+			'asf'        => array(
+				'file_properties_object' => array(
+					'creation_date_unix' => 123,
+				),
+			),
+		);
+
+		$this->assertEquals( 123, wp_get_media_creation_timestamp( $metadata ) );
+	}
+
+	/**
+	 * @ticket 35218
+	 */
+	function test_wp_get_media_creation_timestamp_video_matroska() {
+		$metadata = array(
+			'fileformat' => 'matroska',
+			'matroska'   => array(
+				'comments' => array(
+					'creation_time' => array(
+						'2015-12-24T17:40:09Z'
+					),
+				),
+			),
+		);
+
+		$this->assertEquals( 1450978809, wp_get_media_creation_timestamp( $metadata ) );
+	}
+
+	/**
+	 * @ticket 35218
+	 */
+	function test_wp_get_media_creation_timestamp_video_quicktime() {
+		$metadata = array(
+			'fileformat' => 'quicktime',
+			'quicktime'  => array(
+				'moov' => array(
+					'subatoms' => array(
+						array(
+							'creation_time' => 3533823605,
+						),
+					),
+				),
+			),
+		);
+
+		$this->assertEquals( 3533823605, wp_get_media_creation_timestamp( $metadata ) );
+	}
+
+	/**
+	 * @ticket 35218
+	 */
+	function test_wp_read_video_metadata_adds_creation_date_with_quicktime() {
+		$video    = DIR_TESTDATA . '/videos/quicktime.mov';
+		$metadata = wp_read_video_metadata( $video );
+
+		$this->assertNotEquals( false, $metadata['created_timestamp'] );
+	}
+
+	/**
+	 * @ticket 35218
+	 */
+	function test_wp_read_video_metadata_adds_creation_date_with_mp4() {
+		$video    = DIR_TESTDATA . '/videos/mp4.m4v';
+		$metadata = wp_read_video_metadata( $video );
+
+		$this->assertNotEquals( false, $metadata['created_timestamp'] );
+	}
+
+	/**
+	 * @ticket 35218
+	 */
+	function test_wp_read_video_metadata_adds_creation_date_with_mkv() {
+		$video    = DIR_TESTDATA . '/videos/mkv.mkv';
+		$metadata = wp_read_video_metadata( $video );
+
+		$this->assertNotEquals( false, $metadata['created_timestamp'] );
+	}
 }
