<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">Hello</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
<br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">I have a problem with determining the duration of a file which is accessed via http. I have a basic question.</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
<br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">My pipeline looks like this:</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
<br>
</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">souphttpsrc -> queue -> typefind -> tsdemux -> queue -> h264parse -> capsfilter -> appsink </span></div>
<div class="elementToProof"><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">the video is a Mpeg-TS which I address in this way:</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">http://192.168.1.1/test.ts</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
<br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">If I now want to determine the length of the video I use:</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">gint64 duration = 0;</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">if (!gst_element_query_duration (pipeline, GST_FORMAT_TIME, &duration)) {</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">g_print("Could not query current duration.\n");</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">return 0;</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">}</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
<br>
</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">I would expect the web server to load the first packets, determine the PTS or PCR and then try to sprint
 to the end of the file to determine the PTS or PCR there. The duration is then determined from the different. Of course this method would still have the problem with the overrun but apparently GStreamer uses a different method to determine the length.</span></div>
<div class="elementToProof"><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
<br>
</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">On the one hand, however, I can see that the end of the file is never loaded and that the calculated duration
 fluctuates greatly. Every time I query the duration from the pipeline, I get different values.
</span><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; color: rgb(0, 0, 0);">Fluctuate by a few seconds.</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">I have a file here that is supposedly about 25 minutes long. Only after I have seen the file for 10 minutes,
 the calculated duration jumps slowly to 30 minutes (which is the correct duration).</span><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div class="elementToProof"><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; font-weight: 400; color: rgb(0, 0, 0);">How can I get gstreamer to calculate a better duration?</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; color: rgb(0, 0, 0);">Downloading completely is not an option.</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; color: rgb(0, 0, 0);">Regards</span></div>
<div class="elementToProof"><span style="letter-spacing: normal; font-family: -webkit-standard; font-size: 12pt; color: rgb(0, 0, 0);">Patrick</span></div>
<div dir="ltr" style="mso-line-height-rule:exactly;-webkit-text-size-adjust:100%;font-size:1px;direction:ltr;"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;font-size:1px;"><tr style="font-size:0;"><td align="left" style="vertical-align:top;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;"><tr style="font-size:0;"><td align="left" style="background-color:#FFFFFF;padding:11px 0 0;vertical-align:top;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;"><tr style="font-size:0;"><td align="center" style="padding:0 10px 0 0;border-top:none;border-right:solid 2px #19368B;border-bottom:none;border-left:none;vertical-align:middle;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;"><tr style="font-size:0;"><td align="center" style="vertical-align:top;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;line-height:normal;"><tr style="font-size:0;"><td align="center" style="padding:0 0 25px;vertical-align:top;"><a href="https://www.vitec.com/" target="_blank" id="LPlnk689713" style="text-decoration:none;"><img src="https://www.vitec.com/fileadmin/_permanent/signature/VITEC_RGB_logo@160px.jpg" border="0" alt="" style="font-size:0;" /></a></td></tr></table></td></tr><tr style="font-size:0;"><td align="center" style="vertical-align:bottom;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;"><tr style="font-size:0;"><td align="left" style="vertical-align:bottom;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;line-height:normal;"><tr style="font-size:0;"><td align="left" style="padding:4px;vertical-align:bottom;"><a href="https://www.linkedin.com/company/vitec-multimedia" target="_blank" id="LPlnk689713" style="text-decoration:none;"><img src="https://www.vitec.com/fileadmin/_permanent/signature/icons/Linkedin-v3_40.png" border="0" alt="" style="font-size:0;" /></a></td></tr></table></td><td align="left" style="vertical-align:bottom;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;line-height:normal;"><tr style="font-size:0;"><td align="left" style="padding:4px;vertical-align:bottom;"><a href="https://www.youtube.com/vitecmm" target="_blank" id="LPlnk689713" style="text-decoration:none;"><img src="https://www.vitec.com/fileadmin/_permanent/signature/icons/Youtube-v3_40.png" border="0" alt="" style="font-size:0;" /></a></td></tr></table></td><td align="left" style="vertical-align:bottom;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;line-height:normal;"><tr style="font-size:0;"><td align="left" style="padding:4px;vertical-align:bottom;"><a href="https://www.twitter.com/vitec_mm" target="_blank" id="LPlnk689713" style="text-decoration:none;"><img src="https://www.vitec.com/fileadmin/_permanent/signature/icons/Twitter-v3_40.png" border="0" alt="" style="font-size:0;" /></a></td></tr></table></td></tr></table></td></tr></table></td><td align="left" style="padding:0 10px;vertical-align:middle;"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;font-size:0;"><tr style="font-size:18.67px;color:#26358C;font-style:normal;font-weight:700;white-space:nowrap;"><td align="left" style="vertical-align:top;font-family:Calibri,Arial,sans-serif;">Patrick Fischer</td></tr><tr style="font-size:0;"><td align="left" style="vertical-align:top;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;color:#000001;font-style:normal;font-weight:400;white-space:nowrap;"><tr style="font-size:14.67px;"><td align="left" style="vertical-align:top;font-family:Calibri,Arial,sans-serif;">Software Developer</td></tr></table></td></tr><tr style="font-size:0;"><td align="left" style="vertical-align:top;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;"><tr style="font-size:14.67px;color:#000001;font-style:normal;font-weight:400;white-space:nowrap;"><td align="left" style="padding:0;vertical-align:top;font-family:Calibri,Arial,sans-serif;">o: <br /></td><td align="left" style="padding:0;vertical-align:top;font-family:Calibri,Arial,sans-serif;"><a href="tel:+49%204307%208358%200" target="_blank" id="LPlnk689713" style="text-decoration:none;color:#000001;">+49 4307 8358 0</a></td></tr><tr style="font-size:0;"><td align="left" style="padding:0;vertical-align:top;"></td><td align="left" style="padding:0;vertical-align:top;"></td></tr><tr style="font-size:0;"><td align="left" style="padding:0;vertical-align:top;"></td><td align="left" style="padding:0;vertical-align:top;"></td></tr></table></td></tr><tr style="font-size:0;"><td align="left" style="vertical-align:top;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;color:#1F419A;font-style:normal;font-weight:400;white-space:nowrap;"><tr style="font-size:14.67px;"><td align="left" style="vertical-align:top;font-family:Calibri,Arial,sans-serif;"><a href="mailto:patrick.fischer@vitec.com" target="_blank" id="LPlnk689713" style="text-decoration:none;color:#1F419A;">patrick.fischer@vitec.com</a></td></tr></table></td></tr><tr style="font-size:14.67px;color:#26358C;font-style:normal;font-weight:400;white-space:nowrap;"><td align="left" style="vertical-align:top;font-family:Calibri,Arial,sans-serif;"><a href="https://www.vitec.com/" target="_blank" id="LPlnk689713" style="text-decoration:none;color:#26358C;">www.vitec.com</a></td></tr></table></td></tr></table></td></tr></table></td></tr></table></div><div dir="ltr" style="mso-line-height-rule:exactly;-webkit-text-size-adjust:100%;font-size:1px;direction:ltr;"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;font-size:1px;"><tr style="font-size:0;"><td align="left" style="vertical-align:top;"><table cellpadding="0" cellspacing="0" border="0" style="font-size:0;line-height:normal;"><tr style="font-size:0;"><td align="left" style="padding:10px 0;vertical-align:top;"><a href="https://www.vitec.com/" target="_blank" id="LPlnk689713" style="text-decoration:none;"><img src="cid:image680724.png@0C17A471.17D2595E" border="0" title="www.vitec.com" alt="www.vitec.com" style="font-size:12px;" /></a></td></tr></table></td></tr></table></div><div dir="ltr" style="mso-line-height-rule:exactly;-webkit-text-size-adjust:100%;font-size:1px;direction:ltr;"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;font-size:1px;"><tr style="font-size:0;"><td align="left" style="vertical-align:top;"><table cellpadding="0" cellspacing="0" border="0" style="white-space:normal;color:#767171;font-size:14.67px;font-family:Calibri,Arial,sans-serif;font-weight:400;font-style:normal;text-align:justify;width:100%;"><tr style="font-size:9px;"><td style="font-family:Calibri,sans-serif;">Legal Notice<span style="font-family:remialcxesans;font-size:1px;color:#FFFFFF;line-height:1px;">​</span><br /> Unless expressly stated otherwise, this message is confidential and may be privileged. It is intended for the addressee(s) only. Access to this e-mail by anyone else is unauthorized. If you are not an addressee, any disclosure or copying of the contents of this e-mail or any action taken (or not taken) in reliance on it is unauthorized and may be unlawful. If you are not an addressee, please inform the sender immediately. Neither VITEC S.A. (66 Avenue des Champs Elysées – 75008 Paris - France) nor any of its subsidiaries or affiliates shall be liable for the message if altered, changed or falsified. VITEC GmbH, Lise-Meitner-Str. 15, 24223 Schwentinental<br /> Geschäftsführer/Managing Director: Philippe Wetzel<br /> HRB Plön 1584 / Steuernummer: 2029706365 / VATnumber: DE134878603</td></tr></table></td></tr></table></div></body>
</html>