diff --git a/toonz/sources/image/ffmpeg/tiio_ffmpeg.cpp b/toonz/sources/image/ffmpeg/tiio_ffmpeg.cpp
index 0cd7a8c..9ed05df 100644
--- a/toonz/sources/image/ffmpeg/tiio_ffmpeg.cpp
+++ b/toonz/sources/image/ffmpeg/tiio_ffmpeg.cpp
@@ -9,6 +9,7 @@
 #include <QRegExp>
 #include "toonz/preferences.h"
 #include "toonz/toonzfolders.h"
+#include "tmsgcore.h"
 
 Ffmpeg::Ffmpeg() {
   m_ffmpegPath         = Preferences::instance()->getFfmpegPath();
@@ -163,12 +164,19 @@ void Ffmpeg::runFfmpeg(QStringList preIArgs, QStringList postIArgs,
   // write the file
   QProcess ffmpeg;
   ffmpeg.start(m_ffmpegPath + "/ffmpeg", args);
-  ffmpeg.waitForFinished(m_ffmpegTimeout);
-  QString results = ffmpeg.readAllStandardError();
-  results += ffmpeg.readAllStandardOutput();
-  int exitCode = ffmpeg.exitCode();
-  ffmpeg.close();
-  std::string strResults = results.toStdString();
+  if (ffmpeg.waitForFinished(m_ffmpegTimeout)) {
+    QString results = ffmpeg.readAllStandardError();
+    results += ffmpeg.readAllStandardOutput();
+    int exitCode = ffmpeg.exitCode();
+    ffmpeg.close();
+    std::string strResults = results.toStdString();
+  } else {
+    DVGui::warning(
+        QObject::tr("FFmpeg timed out.\n"
+                    "Please check the file for errors.\n"
+                    "If the file doesn't play or is incomplete, \n"
+                    "Please try raising the FFmpeg timeout in Preferences."));
+  }
 }
 
 QString Ffmpeg::runFfprobe(QStringList args) {
diff --git a/toonz/sources/toonzlib/movierenderer.cpp b/toonz/sources/toonzlib/movierenderer.cpp
index e9f4ed4..c11a4c2 100644
--- a/toonz/sources/toonzlib/movierenderer.cpp
+++ b/toonz/sources/toonzlib/movierenderer.cpp
@@ -212,13 +212,17 @@ void MovieRenderer::Imp::prepareForStart() {
         // In case the raster specifics are different from those of a currently
         // existing movie, erase it
         try {
-          TLevelReaderP lr(fp);
-          lr->loadInfo();
-
-          const TImageInfo *info = lr->getImageInfo();
-          if (!info || info->m_lx != imageSize.lx ||
-              info->m_ly != imageSize.ly || fp.isFfmpegType())
-            TSystem::removeFileOrLevel(fp);  // nothrow
+          if (fp.isFfmpegType()) {
+            TSystem::removeFileOrLevel(fp);
+          } else {
+            TLevelReaderP lr(fp);
+            lr->loadInfo();
+
+            const TImageInfo *info = lr->getImageInfo();
+            if (!info || info->m_lx != imageSize.lx ||
+                info->m_ly != imageSize.ly)
+              TSystem::removeFileOrLevel(fp);  // nothrow
+          }
         } catch (...) {
           // Same if the level could not be read/opened
           TSystem::removeFileOrLevel(fp);  // nothrow