mp4mux audio not sync when video in 30FPS

arizonausa penbosidodev at gmail.com
Wed Apr 26 17:03:13 UTC 2017


Hi there,

I get some issue when mux audio and video into a mp4 file, the audio out of
sync when video in 30FPS
the pipeline is kind as following,

appsrc-> omxh264enc -> h264parse ->
                                                            mp4mux->
filesink
udpsrc-> rtpmp4gdepay -> aacparse ->

This works fine when "appsrc" get a 60fps video coming, when the it change
to 30fps, it is not sync anymore, the only change I did was the frame-rate
parameter for the "appsrc"( v_rate  ). If I only run video or audio
pipeline, there is no problem, I may not take care the timestamp correctly
when muxing. Do anyone have ideas on this case, I am struggling this for a
while.

so the caps for the "appsrc" is

g_object_set( G_OBJECT( source ),
                  "is-live", TRUE,
                  "format", 3,
                  "emit-signals", TRUE,
                  "do-timestamp", TRUE,
                  "max-bytes", 0,
                  "caps", gst_caps_new_simple( "video/x-raw",
                                                               "format",
G_TYPE_STRING, "I420",
                                                               "width",
G_TYPE_INT, v_width,
                                                               "height",
G_TYPE_INT, v_height,
                                                               "framerate",
GST_TYPE_FRACTION, (int)v_rate*1000, 1000,
                                                                NULL ),
                  NULL );

so the caps for the "udpsrc" is

g_object_set( G_OBJECT( gstptr->audio_src ),
                      "address", "127.0.0.1",
                      "do-timestamp", TRUE,
                      "port", 5006,
                      "caps", gst_caps_new_simple( "application/x-rtp",
                                                   "media", G_TYPE_STRING,
"audio",
                                                   "clock-rate", G_TYPE_INT,
48000,
                                                   "encoding-name",
G_TYPE_STRING, "MPEG4-GENERIC", 
                                                   "encoding-params",
G_TYPE_STRING, "2",
                                                   "streamtype",
G_TYPE_STRING, "5",
                                                   "profile-level-id",
G_TYPE_STRING, "2", 
                                                   "mode", G_TYPE_STRING,
"AAC-hbr",
                                                   "config", G_TYPE_STRING,
"1190", 
                                                   "sizelength",
G_TYPE_STRING, "13",
                                                   "indexlength",
G_TYPE_STRING, "3",
                                                   "indexdeltalength",
G_TYPE_STRING, "3",
                                                   "constantDuration",
G_TYPE_STRING, "1024",
                                                   "payload", G_TYPE_INT,
96,
                                                   NULL ),
                      NULL );













--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/mp4mux-audio-not-sync-when-video-in-30FPS-tp4682819.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list