diff --git a/ffmpeg.c b/ffmpeg.c
index 7a4176c90f97c2a47575fb37cd37afaf5166afd1..691d2c9dd55778e59e9aabe088c85d8ff5bb344f 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -163,7 +163,6 @@ static char *audio_language = NULL;
 static int subtitle_codec_id = CODEC_ID_NONE;
 static char *subtitle_language = NULL;
 
-static int mux_packet_size= 0;
 static float mux_preload= 0.5;
 static float mux_max_delay= 0.7;
 
@@ -3315,7 +3314,6 @@ static void opt_output_file(const char *filename)
         exit(1);
     }
 
-    oc->packet_size= mux_packet_size;
     oc->preload= (int)(mux_preload*AV_TIME_BASE);
     oc->max_delay= (int)(mux_max_delay*AV_TIME_BASE);
     oc->loop_output = loop_output;
@@ -3706,7 +3704,7 @@ static void opt_target(const char *arg)
         audio_bit_rate = 224000;
         audio_sample_rate = 44100;
 
-        mux_packet_size= 2324;
+        opt_default("packetsize", "2324");
         opt_default("muxrate", "1411200"); // 2352 * 75 * 8;
 
         /* We have to offset the PTS, so that it is consistent with the SCR.
@@ -3735,7 +3733,7 @@ static void opt_target(const char *arg)
         audio_bit_rate = 224000;
         audio_sample_rate = 44100;
 
-        mux_packet_size= 2324;
+        opt_default("packetsize", "2324");
 
     } else if(!strcmp(arg, "dvd")) {
 
@@ -3752,7 +3750,7 @@ static void opt_target(const char *arg)
         opt_default("minrate", "0"); //1500000;
         opt_default("bufsize", "1835008"); //224*1024*8;
 
-        mux_packet_size= 2048;  // from www.mpucoder.com: DVD sectors contain 2048 bytes of data, this is also the size of one pack.
+        opt_default("packetsize", "2048");  // from www.mpucoder.com: DVD sectors contain 2048 bytes of data, this is also the size of one pack.
         opt_default("muxrate", "10080000"); // from mplex project: data_rate = 1260000. mux_rate = data_rate * 8
 
         audio_bit_rate = 448000;
@@ -3978,7 +3976,6 @@ const OptionDef options[] = {
     { "gd", HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_GRAB, {(void*)opt_grab_device}, "set grab device", "device" },
 
     /* muxer options */
-    { "packetsize", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&mux_packet_size}, "set packet size", "size" },
     { "muxdelay", OPT_FLOAT | HAS_ARG | OPT_EXPERT, {(void*)&mux_max_delay}, "set the maximum demux-decode delay", "seconds" },
     { "muxpreload", OPT_FLOAT | HAS_ARG | OPT_EXPERT, {(void*)&mux_preload}, "set the initial demux-decode delay", "seconds" },
 
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 159eaa1aa65c8653b3c066bd99957353d62ae3f1..77bc84aa10a948f1bf02a41a2b1a690b3c3711e8 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -467,6 +467,7 @@ static const char* format_to_name(void* ptr)
 static const AVOption options[]={
 {"probesize", NULL, OFFSET(probesize), FF_OPT_TYPE_INT, 32000, 32, INT_MAX, D}, /* 32000 from mpegts.c: 1.0 second at 24Mbit/s */
 {"muxrate", "set mux rate", OFFSET(mux_rate), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E},
+{"packetsize", "set packet size", OFFSET(packet_size), FF_OPT_TYPE_INT, DEFAULT, 0, INT_MAX, E},
 {"fflags", NULL, OFFSET(flags), FF_OPT_TYPE_FLAGS, DEFAULT, INT_MIN, INT_MAX, D, "fflags"},
 {"ignidx", "ignore index", 0, FF_OPT_TYPE_CONST, AVFMT_FLAG_IGNIDX, INT_MIN, INT_MAX, D, "fflags"},
 {"genpts", "generate pts", 0, FF_OPT_TYPE_CONST, AVFMT_FLAG_GENPTS, INT_MIN, INT_MAX, D, "fflags"},