Index: src/wp-includes/formatting.php
===================================================================
--- src/wp-includes/formatting.php	(revision 26862)
+++ src/wp-includes/formatting.php	(working copy)
@@ -242,6 +242,9 @@
 		$pee = preg_replace('|\s*<param([^>]*)>\s*|', "<param$1>", $pee); // no pee inside object/embed
 		$pee = preg_replace('|\s*</embed>\s*|', '</embed>', $pee);
 	}
+	if ( preg_match( '|[\[<]video|', $pee ) ) {
+		$pee = preg_replace( '#\s*<(track|source)([^>]*)>\s*#', '<$1$2>', $pee ); // no pee inside video tag/shortcode
+	}
 	$pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates
 	// make paragraphs, including one at the end
 	$pees = preg_split('/\n\s*\n/', $pee, -1, PREG_SPLIT_NO_EMPTY);
@@ -258,6 +261,7 @@
 	$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee);
 	if ( $br ) {
 		$pee = preg_replace_callback('/<(script|style).*?<\/\\1>/s', '_autop_newline_preservation_helper', $pee);
+		$pee = preg_replace_callback('/[\[<]video.*?[\[<]\/video[\]>]/s', '_autop_newline_preservation_helper', $pee);
 		$pee = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $pee); // optionally make line breaks
 		$pee = str_replace('<WPPreserveNewline />', "\n", $pee);
 	}
Index: src/wp-includes/media.php
===================================================================
--- src/wp-includes/media.php	(revision 26862)
+++ src/wp-includes/media.php	(working copy)
@@ -1144,6 +1144,14 @@
 			$html .= sprintf( $source, $type['type'], esc_url( $$fallback ) );
 		}
 	}
+
+	if ( ! empty( $content ) ) {
+		if ( false !== strpos( $content, "\n" ) )
+			$content = str_replace( array( "\r\n", "\n", "\t" ), '', $content );
+
+		$html .= trim( $content );
+	}
+
 	if ( 'mediaelement' === $library )
 		$html .= wp_mediaelement_fallback( $fileurl );
 	$html .= '</video>';
