diff --git a/dom/media/gstreamer/GStreamerFormatHelper.cpp b/dom/media/gstreamer/GStreamerFormatHelper.cpp
--- a/dom/media/gstreamer/GStreamerFormatHelper.cpp
+++ b/dom/media/gstreamer/GStreamerFormatHelper.cpp
@@ -62,16 +62,17 @@ static char const * const sDefaultCodecC
   {"audio/mp4", "audio/mpeg, mpegversion=(int)4"},
   {"audio/x-m4a", "audio/mpeg, mpegversion=(int)4"},
   {"audio/mp3", "audio/mpeg, layer=(int)3"},
   {"audio/mpeg", "audio/mpeg, layer=(int)3"}
 };
 
 static char const * const sPluginBlacklist[] = {
   "flump3dec",
+  "h264parse",
 };
 
 GStreamerFormatHelper::GStreamerFormatHelper()
   : mFactories(nullptr),
     mCookie(static_cast<uint32_t>(-1))
 {
   if (!sLoadOK) {
     return;
@@ -246,17 +247,18 @@ static gboolean FactoryFilter(GstPluginF
 {
   if (!GST_IS_ELEMENT_FACTORY(aFeature)) {
     return FALSE;
   }
 
   const gchar *className =
     gst_element_factory_get_klass(GST_ELEMENT_FACTORY_CAST(aFeature));
 
-  if (!strstr(className, "Decoder") && !strstr(className, "Demux")) {
+  if (!strstr(className, "Decoder") && !strstr(className, "Demux") &&
+      !strstr(className, "Parser")) {
     return FALSE;
   }
 
   return
     gst_plugin_feature_get_rank(aFeature) >= GST_RANK_MARGINAL &&
     !GStreamerFormatHelper::IsPluginFeatureBlacklisted(aFeature);
 }