I am working in a implementation of HLS protocol. http://tools.ietf.org/html/draft-pantos-http-live-streaming-08
I see all my .TS files have the "audio timestamp" equal to 126000. According to the HLS specification, section 4 Media segments, it says: A media segment MUST be the continuation of the encoded media at the end of the segment with the previous sequence number, where values in a continuous series, such as *timestamps* and *Continuity Counters*, continue uninterrupted - unless the media segment was the first ever to appear in the Playlist file or has an EXT-X-DISCONTINUITY tag applied to it. And then I see my videos are getting out of sync because of it. *How do I change the .TS files "timestamps and Continuity Counters"?* * * Thank you... *[ DEEP DETAILS: ]* I am transmuxing the HLS files one by one, so I would like to have a parameter [that I think it doesn't exist here] MPEGTS muxer AVOptions: -mpegts_transport_stream_id <int> E.... Set transport_stream_id field. -mpegts_original_network_id <int> E.... Set original_network_id field. -mpegts_service_id <int> E.... Set service_id field. -mpegts_pmt_start_pid <int> E.... Set the first pid of the PMT. -mpegts_start_pid <int> E.... Set the first pid. -mpegts_m2ts_mode <int> E.... Enable m2ts mode. -muxrate <int> E.... -pes_payload_size <int> E.... Minimum PES packet payload in bytes -resend_headers <int> E.... Reemit PAT/PMT before writing the next packet SO, with this "parameter" I would have a chance to change this data... however, I tried to figure out in the mpegtsenc.c WHERE is this "timestamp" or continuity counter... I thought it would be somthing around here: typedef struct MpegTSWriteStream { struct MpegTSService *service; int pid; /* stream associated pid */ * int cc;* int payload_size; * int first_pts_check; ///< first pts check needed* int prev_payload_key; int64_t payload_pts; int64_t payload_dts; int payload_flags; uint8_t *payload; ADTSContext *adts; } MpegTSWriteStream; BUT I think I misinterpreted it... because in the mpegts_write_header(), we have: ts->pat.pid = PAT_PID; ts->pat.cc = 15; // Initialize at 15 so that it wraps and be equal to 0 for the first packet we write as fixed values.... so I don't understand HOW THE mpegtsenc MUXER GOT 126000 as the timestamp... where is this value in mpegtsenc.c so I could tune it?
_______________________________________________ Libav-user mailing list Libav-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/libav-user