diff --git a/aegisub/src/audio_provider_ffmpegsource.cpp b/aegisub/src/audio_provider_ffmpegsource.cpp
index 48e425409b79911a1c71ccb6d777720dbbe63feb..cabfca9de82f67f00af2bbaf6528ed94b25de15f 100644
--- a/aegisub/src/audio_provider_ffmpegsource.cpp
+++ b/aegisub/src/audio_provider_ffmpegsource.cpp
@@ -76,8 +76,12 @@ void FFmpegSourceAudioProvider::LoadAudio(wxString filename) {
 	wxString FileNameShort = wxFileName(filename).GetShortPath();
 
 	FFMS_Indexer *Indexer = FFMS_CreateIndexer(FileNameShort.utf8_str(), &ErrInfo);
-	if (!Indexer)
-		throw agi::FileNotFoundError(ErrInfo.Buffer);
+	if (!Indexer) {
+		if (ErrInfo.SubType == FFMS_ERROR_FILE_READ)
+			throw agi::FileNotFoundError(ErrInfo.Buffer);
+		else
+			throw agi::AudioDataNotFoundError(ErrInfo.Buffer, 0);
+	}
 
 	std::map<int,wxString> TrackList = GetTracksOfType(Indexer, FFMS_TYPE_AUDIO);
 	if (TrackList.size() <= 0)
diff --git a/aegisub/src/video_provider_ffmpegsource.cpp b/aegisub/src/video_provider_ffmpegsource.cpp
index f131a773befd64847fcf846cf4401239513e20b6..ce28e6839e7cd9b456ce072247dc89850e179c8a 100644
--- a/aegisub/src/video_provider_ffmpegsource.cpp
+++ b/aegisub/src/video_provider_ffmpegsource.cpp
@@ -89,8 +89,12 @@ void FFmpegSourceVideoProvider::LoadVideo(wxString filename) {
 	wxString FileNameShort = wxFileName(filename).GetShortPath();
 
 	FFMS_Indexer *Indexer = FFMS_CreateIndexer(FileNameShort.utf8_str(), &ErrInfo);
-	if (!Indexer)
-		throw agi::FileNotFoundError(ErrInfo.Buffer);
+	if (!Indexer) {
+		if (ErrInfo.SubType == FFMS_ERROR_FILE_READ)
+			throw agi::FileNotFoundError(ErrInfo.Buffer);
+		else
+			throw VideoNotSupported(ErrInfo.Buffer);
+	}
 
 	std::map<int,wxString> TrackList = GetTracksOfType(Indexer, FFMS_TYPE_VIDEO);
 	if (TrackList.size() <= 0)