diff --git a/libavformat/segment.c b/libavformat/segment.c
index 6025aad8060c7d17de92d0fe807169bcb23cce4a..4a33c6588ee21874b2ee00fd7952ffd17d3e4b98 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -81,6 +81,8 @@ static int segment_start(AVFormatContext *s)
     return 0;
 
 fail:
+    av_log(oc, AV_LOG_ERROR, "Failure occurred when starting segment '%s'\n",
+           oc->filename);
     avio_close(oc->pb);
     av_freep(&oc->priv_data);
 
@@ -94,6 +96,10 @@ static int segment_end(AVFormatContext *oc)
     if (oc->oformat->write_trailer)
         ret = oc->oformat->write_trailer(oc);
 
+    if (ret < 0)
+        av_log(oc, AV_LOG_ERROR, "Failure occurred when ending segment '%s'\n",
+               oc->filename);
+
     avio_close(oc->pb);
     if (oc->oformat->priv_class)
         av_opt_free(oc->priv_data);