diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 7f970be..35c8356 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -1842,6 +1842,45 @@ static int mov_write_trkn_tag(AVIOContext *pb, MOVMuxContext *mov,
     return size;
 }
 
+static int mov_write_int8_metadata(AVFormatContext *s, AVIOContext *pb,
+                                   const char *name, const char *tag,
+                                   int long_style)
+{
+    int64_t pos = avio_tell(pb);
+    AVDictionaryEntry *t = NULL;
+    uint8_t num;
+
+    if (!(t = av_dict_get(s->metadata, tag, NULL, 0)))
+        return 0;
+    num = t ? atoi(t->value) : 0;
+
+    avio_wb32(pb, 4);
+    ffio_wfourcc(pb, name);
+    avio_w8(pb, 0);
+    avio_w8(pb, 0);
+    avio_w8(pb, 0);
+    avio_w8(pb, num);
+    return update_size(pb, pos);
+}
+
+static int mov_write_int8_metadata_no_padding(AVFormatContext *s,
+                                              AVIOContext *pb,
+                                              const char *name, const char *tag)
+{
+    int64_t pos = avio_tell(pb);
+    AVDictionaryEntry *t = NULL;
+    uint8_t num;
+
+    if (!(t = av_dict_get(s->metadata, tag, NULL, 0)))
+        return 0;
+    num = t ? atoi(t->value) : 0;
+
+    avio_wb32(pb, 1);
+    ffio_wfourcc(pb, name);
+    avio_w8(pb, num);
+    return update_size(pb, pos);
+}
+
 /* iTunes meta data list */
 static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov,
                               AVFormatContext *s)
@@ -1866,6 +1905,11 @@ static int mov_write_ilst_tag(AVIOContext *pb, MOVMuxContext *mov,
     mov_write_string_metadata(s, pb, "tvsh",    "show"     , 1);
     mov_write_string_metadata(s, pb, "tven",    "episode_id",1);
     mov_write_string_metadata(s, pb, "tvnn",    "network"  , 1);
+    mov_write_int8_metadata(s, pb, "tves", "episode_sort",1);
+    mov_write_int8_metadata(s, pb, "tvsn", "season_number",1);
+    mov_write_int8_metadata_no_padding(s, pb, "stik", "media_type");
+    mov_write_int8_metadata_no_padding(s, pb, "hdvd", "hd_video");
+    mov_write_int8_metadata_no_padding(s, pb, "pgap", "gapless_playback");
     mov_write_trkn_tag(pb, mov, s);
     return update_size(pb, pos);
 }
