<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!--P{margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p></p>
<font color="black" face="Calibri,Arial,Helvetica,sans-serif" size="3"><span style="font-size:12pt;background-color:white;" dir="ltr"><font face="Calibri,Arial,Helvetica,sans-serif">I am using FFMPEG library to mux H.264 and AAC frames to MP4 file. I do that
 C program.</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">I store H.264 and AAC frame's timestamp in epoch format.</font><br>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">I use ffprobe to check timestamps that stored in the MP4 file, ffprobe confirms that file is in MP4 format and timestamps are stored correctly. below is the output of ffprobe.</font><br>
<br>
<ul style="margin-top:14pt;margin-bottom:14pt;">
<li>ffprobe -show_packets 20140805095931.mp4</li></ul>
<font face="Calibri,Arial,Helvetica,sans-serif">        Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '20140805095931.mp4':</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">      Metadata:</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        major_brand     : isom</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        minor_version   : 512</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        compatible_brands: isomiso2avc1mp41</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        encoder         : Lavf54.29.104</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">      Duration: 00:01:39.70, start: 1407232771.984000, bitrate: 1063 kb/s</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        Stream #0.0(und): Video: h264 (High), yuv420p, 960x540, 999 kb/s, 30 fps, 59.94 tbr, 1k tbn, 60 tbc</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        Stream #0.1(und): Audio: aac, 48000 Hz, mono, s16, 53 kb/s</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    codec_type=video</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    stream_index=0</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts=1407232771984</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts_time=1407232771.984000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts=1407232771984</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts_time=1407232771.984000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration=34</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration_time=0.034000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    size=24556.000000 </font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pos=48</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    flags=K</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [/PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    codec_type=video</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    stream_index=0</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts=1407232772018</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts_time=1407232772.018000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts=1407232772018</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts_time=1407232772.018000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration=33</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration_time=0.033000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    size=3180.000000 </font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pos=24604</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    flags=_</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [/PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    codec_type=video</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    stream_index=0</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts=1407232772051</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts_time=1407232772.051000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts=1407232772051</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts_time=1407232772.051000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration=33</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration_time=0.033000 </font>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    size=3209.000000 </font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pos=27784</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    flags=_</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [/PACKET]</font><br>
<br>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">My goal is reading this muxed MP4 data from MP4 file and send this muxed mp4 data to the client over socket without creating any temporary file. My actual goal is to write a C program though.</font><br>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">I tried using protocols tcp and udp but they are not working with Mp4 format and gives error as below.
</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif"><strong><br>
</strong></font><font face="Calibri,Arial,Helvetica,sans-serif"><strong>ffmpeg -i 20140805095931.mp4 -f mp4 -vcodec copy tcp://10.99.19.163:8888</strong></font><font face="Calibri,Arial,Helvetica,sans-serif"><strong><br>
</strong></font><font face="Calibri,Arial,Helvetica,sans-serif"><strong><br>
</strong></font><font face="Calibri,Arial,Helvetica,sans-serif"><strong>[mp4 @ 0xb1e1920] muxer does not support non seekable output   </strong></font><font face="Calibri,Arial,Helvetica,sans-serif"><strong><br>
</strong></font><font face="Calibri,Arial,Helvetica,sans-serif"><strong>Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument</strong></font><br>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">So, I read somewhere about moov atom and tried it with following command</font><br>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif"><strong>ffmpeg -i 20140805095931.mp4 -movflags isml+frag_keyframe -f mp4 -vcodec copy tcp://10.99.19.163:8888</strong></font><br>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">using above commandline I am able to send mp4 file to the client using tcp protocol that ffmpeg supports.</font><br>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">But when I apply ffprobe on the MP4 file timestamp resets to 0 , even starttime becomes 0.0000. Below is the output of ffmpeg.</font><br>
<br>
<ul style="margin-top:14pt;margin-bottom:14pt;">
<li> ffprobe -show_packets out.mp4</li></ul>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4':</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">      Metadata:</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        major_brand     : isom</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        minor_version   : 512</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        compatible_brands: isomiso2avc1mp41</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        encoder         : Lavf55.48.100</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">      Duration: 00:01:39.71, start: 0.000000, bitrate: 1059 kb/s</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 960x540, 999 kb/s, 30 fps, 30 tbr, 16k tbn, 60 tbc (default)</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        Metadata:</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">          handler_name    : VideoHandler</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 53 kb/s (default)</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">        Metadata:</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">          handler_name    : SoundHandler</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    codec_type=video</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    stream_index=0</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts=0</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts_time=0.000000</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts=0</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts_time=0.000000</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration=533</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration_time=0.033313</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    convergence_duration=N/A</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    convergence_duration_time=N/A</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    size=24556</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pos=3853</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    flags=K</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [/PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    codec_type=video</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    stream_index=0</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts=544</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts_time=0.034000</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts=544</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts_time=0.034000</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration=533</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration_time=0.033313</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    convergence_duration=N/A</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    convergence_duration_time=N/A</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    size=3180</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pos=28409</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    flags=_</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [/PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [PACKET]</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    codec_type=video</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    stream_index=0</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts=1072</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pts_time=0.067000</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts=1072</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    dts_time=0.067000</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration=533</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    duration_time=0.033313</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    convergence_duration=N/A</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    convergence_duration_time=N/A</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    size=3209</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    pos=31589</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    flags=_</font><br>
<font face="Calibri,Arial,Helvetica,sans-serif">    [/PACKET]</font><br>
<br>
<br>
<font face="Calibri,Arial,Helvetica,sans-serif">Any help or advice? Thank you in advance.</font></span></font> *************************************************************************************************************************************************************
 eInfochips Business Disclaimer: This e-mail message and all attachments transmitted with it are intended solely for the use of the addressee and may contain legally privileged and confidential information. If the reader of this message is not the intended
 recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution, copying, or other use of this message or its attachments is strictly prohibited. If you have
 received this message in error, please notify the sender immediately by replying to this message and please delete it from your computer. Any views expressed in this message are those of the individual sender unless otherwise stated. Company has taken enough
 precautions to prevent the spread of viruses. However the company accepts no liability for any damage caused by any virus transmitted by this email. *************************************************************************************************************************************************************
</body>
</html>