<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:宋体;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=ZH-CN link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:"Calibri","sans-serif";
color:#1F497D'>However, I think it in another way, the way like most bittorrent
tools does.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:"Calibri","sans-serif";
color:#1F497D'>At the start of progressive downloaded, a dummy file is created
on disk;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:"Calibri","sans-serif";
color:#1F497D'>When there is seek operation requested from parser, souphttpsrc
will write bunk of data to file with offset as well.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Then I will get the entire file after finish playback.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> Marco Ballesio
[mailto:gibrovacco@gmail.com] <br>
<b>Sent:</b> Monday, September 20, 2010 1:54 PM<br>
<b>To:</b> Discussion of the development of GStreamer<br>
<b>Subject:</b> Re: [gst-devel] some issues when trying to save content to disk
during http progressive downloaded<o:p></o:p></span></p>

</div>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>Hi,<o:p></o:p></span></p>

<div>

<p class=MsoNormal><span lang=EN-US>2010/9/20 Zhao, Halley &lt;<a
href="mailto:halley.zhao@intel.com">halley.zhao@intel.com</a>&gt;<o:p></o:p></span></p>

<div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US style='font-size:10.5pt;color:#1F497D'>Your suggestion may be
helpful, </span><span lang=EN-US><o:p></o:p></span></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US style='font-size:10.5pt;color:#1F497D'>But I expect a solution needn</span><span
style='font-size:10.5pt;color:#1F497D'>’<span lang=EN-US>t care about
demux/mux, because all these data are passed through souphttpsrc, save the data
from souphttpsrc shouldn</span>’<span lang=EN-US>t care about mux/demux.</span></span><span
lang=EN-US><o:p></o:p></span></p>

</div>

</div>

<div>

<p class=MsoNormal><span lang=EN-US><br>
As you wrote:<br>
<br>
&quot;it seek to the end of the mp4 file at the beginning of playback.&quot;<br>
<br>
the seek operation is performed from the demuxer (qtdemux), which identifies
essential meta-data present at the end of the file. This data will not be
transferred again at the end of the playback, so *in this case* you can't
consider souphttpsrc as just a mere data pipe through which you get the
complete clip.<br>
<br>
Said so, you have many ways to address this:<br>
<br>
- You can (try and) use the &quot;moov-recovery-file&quot; transmuxing the file
after having saved it. It will restore the missing meta-info.<br>
- You can re-mux on-the-file the file while you're getting it from souphttpsrc.
Again, it will rebuild the lost meta-infos.<br>
- You can use only progressive-download compliant files: they will have all the
meta-information stored at the beginning and no seek will be needed.<br>
<br>
Regards<br>
<br>
&nbsp;<o:p></o:p></span></p>

</div>

<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-right:0cm'>

<div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US style='font-size:10.5pt;color:#1F497D'>&nbsp;</span><span
lang=EN-US><o:p></o:p></span></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US style='font-size:10.5pt;color:#1F497D'>&nbsp;</span><span
lang=EN-US><o:p></o:p></span></p>

<div style='border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0cm 0cm 0cm;
border-color:-moz-use-text-color -moz-use-text-color'>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span
lang=EN-US style='font-size:10.0pt'>From:</span></b><span lang=EN-US
style='font-size:10.0pt'> Marco Ballesio [mailto:<a
href="mailto:gibrovacco@gmail.com" target="_blank">gibrovacco@gmail.com</a>] <br>
<b>Sent:</b> Sunday, September 19, 2010 12:53 AM<o:p></o:p></span></p>

<div>

<p class=MsoNormal><span lang=EN-US style='font-size:10.0pt'><br>
<b>To:</b> Discussion of the development of GStreamer<o:p></o:p></span></p>

</div>

<div>

<div>

<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt'>Subject:</span></b><span
lang=EN-US style='font-size:10.0pt'> Re: [gst-devel] some issues when trying to
save content to disk during http progressive downloaded<o:p></o:p></span></p>

</div>

</div>

</div>

<div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US>&nbsp;<o:p></o:p></span></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><span
lang=EN-US>Hi,<o:p></o:p></span></p>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US>2010/9/13 Zhao, Halley &lt;<a href="mailto:halley.zhao@intel.com"
target="_blank">halley.zhao@intel.com</a>&gt;<o:p></o:p></span></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US>Thanks Stefan.<br>
After add a 'queue' after 'souphttpsrc' and use 'decodebin2'; I still got same
result.<br>
<br>
I think the possible solution is to enhance souphttpsrc to save content to disk
after some refractor, because souphttpsrc does some seek following the command
of parser.<br>
<br>
Attached mp4.log is the log of souphttpsrc, it seek to the end of the mp4 file
at the beginning of playback. Finally, tail of the original mp4 file is missing
in downloaded mp4 file.<o:p></o:p></span></p>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US><br>
It looks like you're not re-muxing the content. Are you simply storing the raw
mp4 data to a file or are you using a muxer before the filesink? What does
mp4info tell about your output file?<br>
<br>
You may try and recover the saved files with mp4mux using the option
&quot;moov-recovery-file&quot;. What happens if you transmux the files using
it?<br>
<br>
Regards<br>
&nbsp;<o:p></o:p></span></p>

</div>

<blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0cm 0cm 0cm 6.0pt;
margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt;
border-color:-moz-use-text-color -moz-use-text-color -moz-use-text-color rgb(204, 204, 204)'>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US style='color:#888888'>halley@halley-lucid:~/swap/streaming/mp4$ ls
-l<br>
total 5216<br>
-rwxr--r-- 1 halley halley 1776915 2010-09-08 23:08 download.mp4<br>
-rw-r--r-- 1 halley halley 1773281 2010-09-08 18:15 original.mp4</span><span
lang=EN-US><o:p></o:p></span></p>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US><br>
-----Original Message-----<br>
From: Stefan Kost [mailto:<a href="mailto:ensonic@hora-obscura.de"
target="_blank">ensonic@hora-obscura.de</a>]<br>
Sent: 2010</span>年<span lang=EN-US>9</span>月<span lang=EN-US>11</span>日<span
lang=EN-US> 1:27<br>
To: Discussion of the development of GStreamer<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><span
lang=EN-US>Cc: Zhao, Halley<br>
Subject: Re: [gst-devel] some issues when trying to save content to disk during
http progressive downloaded<o:p></o:p></span></p>

</div>

<div>

<div>

<p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><span
lang=EN-US>Am 08.09.2010 04:45, schrieb Zhao, Halley:<br>
&gt; During playback of progressive content, I tried to save the content to
disk as well.<br>
&gt;<br>
&gt; But the result is strange:<br>
&gt;<br>
&gt; Some contents are saved correctly, some contents are saved but can</span>’<span
lang=EN-US>t playback<br>
&gt; again; some contents even can</span>’<span lang=EN-US>t playback during
progressive downloaded.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ## most ogg contents work well, the saved contents can playback again<br>
&gt;<br>
&gt; gst-launch-0.10 souphttpsrc<br>
&gt; location=<a href="http://10.238.37.11/share/media/video/test.ogv"
target="_blank">http://10.238.37.11/share/media/video/test.ogv</a> ! tee name=t
! decodebin<br>
&gt; ! ffmpegcolorspace ! xvimagesink t. ! queue ! filesink location=test.ogv<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ## some mp4 saved contents can</span>’<span lang=EN-US>t playback again,
the saved contents differ from<br>
&gt; the original one; even the following test.mp4 and test2.mp4 are different<br>
&gt;<br>
&gt; gst-launch-0.10 souphttpsrc location=http://<br>
&gt; <a href="http://10.238.37.11/share/media/video/test.mp4" target="_blank">10.238.37.11/share/media/video/test.mp4</a>
! tee name=t ! decodebin !<br>
&gt; ffmpegcolorspace ! xvimagesink t. ! queue ! filesink location=test.mp4<br>
&gt;<br>
&gt; gst-launch-0.10 souphttpsrc location=http://<br>
&gt; <a href="http://10.238.37.11/share/media/video/test.mp4" target="_blank">10.238.37.11/share/media/video/test.mp4</a>
! filesink<br>
&gt; location=/home/halley/swap/streaming/test2.mp4<br>
&gt;<br>
<br>
At first use decodebin2!<br>
<br>
If the http source is seekable, the muxer in decodebin will do pull. You could
try:<br>
<br>
gst-launch-0.10 souphttpsrc<br>
location=<a href="http://10.238.37.11/share/media/video/test.mp4"
target="_blank">http://10.238.37.11/share/media/video/test.mp4</a> ! queue !
tee name=t !<br>
decodebin2 ! ffmpegcolorspace ! xvimagesink t. ! queue ! filesink
location=test.mp4<br>
<br>
Stefan<br>
<br>
&gt;<br>
&gt;<br>
&gt; ## some wmv contents even can</span>’<span lang=EN-US>t playback during
progressive downloaded (though<br>
&gt; some saved wmv contents can playback again)<br>
&gt;<br>
&gt; gst-launch-0.10 -v -v souphttpsrc location=http://<br>
&gt; <a href="http://10.238.37.11/share/media/test.wmv" target="_blank">10.238.37.11/share/media/test.wmv</a>
! tee name=t ! queue ! decodebin !<br>
&gt; ffmpegcolorspace ! xvimagesink t. ! queue ! filesink location=test.wmv<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; thanks in advance for your help.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; *ZHAO, Halley (Aihua)*<br>
&gt;<br>
&gt; Email: <a href="mailto:halley.zhao@intel.com" target="_blank">halley.zhao@intel.com</a>
&lt;blocked::mailto:<a href="mailto:aihua.zhao@intel.com" target="_blank">aihua.zhao@intel.com</a>&gt;<br>
&gt;<br>
&gt; Tel: +86(21)61166476 &nbsp; iNet: 8821-6476<br>
&gt;<br>
&gt; SSG/OTC/Moblin 3W038 Pole: F4<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;
------------------------------------------------------------------------------<br>
&gt; This SF.net Dev2Dev email is sponsored by:<br>
&gt;<br>
&gt; Show off your parallel programming skills.<br>
&gt; Enter the Intel(R) Threading Challenge 2010.<br>
&gt; <a href="http://p.sf.net/sfu/intel-thread-sfd" target="_blank">http://p.sf.net/sfu/intel-thread-sfd</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing list<br>
&gt; <a href="mailto:gstreamer-devel@lists.sourceforge.net" target="_blank">gstreamer-devel@lists.sourceforge.net</a><br>
&gt; <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel"
target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><span
lang=EN-US><br>
------------------------------------------------------------------------------<br>
Start uncovering the many advantages of virtual appliances<br>
and start using them to simplify application deployment and<br>
accelerate your shift to cloud computing<br>
<a href="http://p.sf.net/sfu/novell-sfdev2dev" target="_blank">http://p.sf.net/sfu/novell-sfdev2dev</a><br>
<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net" target="_blank">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel"
target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><o:p></o:p></span></p>

</blockquote>

</div>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span
lang=EN-US>&nbsp;<o:p></o:p></span></p>

</div>

</div>

</div>

</div>

<p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US><br>
------------------------------------------------------------------------------<br>
Start uncovering the many advantages of virtual appliances<br>
and start using them to simplify application deployment and<br>
accelerate your shift to cloud computing.<br>
<a href="http://p.sf.net/sfu/novell-sfdev2dev" target="_blank">http://p.sf.net/sfu/novell-sfdev2dev</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel"
target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><o:p></o:p></span></p>

</blockquote>

</div>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

</div>

</body>

</html>