Hi<br>I dont know the answer but i have a question. I would be pleased if you let me know how can i use FFMPEG functions in my program? I do programming in C and i call ffmpeg command line by "system()" function in C. But for using some specific functions, i actually dont know how to do it in windows os. would you let me know?<br>
Thanks<br>Amir<br><br><div class="gmail_quote">On 15 September 2011 04:31, Denis <span dir="ltr"><<a href="mailto:info@denisgottardello.it" target="_blank">info@denisgottardello.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<u></u>
<div style="font-family:'DejaVu Sans';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">In data mercoledì 14 settembre 2011 17:44:34, Roger Pack ha scritto:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > Vlc does not work.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > Wich is the error? I can not to find it. I can not understand wich is the</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> > right way for store a frame in a h264 file.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">> Maybe you're setting the pts timestamps wrong?</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">I have made a small step forward. Now I can produce a h264 file that I can see with mplayer and vlc but I have some trouble.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Mplayer plays the video at 50 fps instead of 25. Vlc plays the video at the right fps.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Another program says that the video has a wrong timestamp (pts dts). This is what the program says:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">PachetCount: 1 , 6144 bytes, pBufferSize: 32768 </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">PachetCount: 2 , 26624 bytes, pBufferSize: 26624 </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">[mpegts @ 0xb2502da0] Invalid timestamps stream=0, pts=0, dts=<a href="tel:8589927392" value="+18589927392" target="_blank">8589927392</a>, size=1163</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">[mpegts @ 0xb2502da0] Invalid timestamps stream=0, pts=14400, dts=<a href="tel:8589930992" value="+18589930992" target="_blank">8589930992</a>, size=19</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">[mpegts @ 0xb2502da0] max_analyze_duration 5000000 reached at 5000000</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">[mpegts @ 0xb2502da0] Estimating duration from bitrate, this may be inaccurate</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">dump_format begin </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Input #0, mpegts, from 'foo.mpg':</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> Duration: N/A, start: 0.000000, bitrate: N/A</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> Program 1 </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> Metadata:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> service_name : Service01</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> service_provider: FFmpeg</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> Stream #0.0[0x100]: Video: h264 (High), yuv420p, 320x240, 25 fps, 25 tbr, 90k tbn, 50 tbc</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">dump_format end </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">0 </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">"fps: 25" </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">And this is the function:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#808000">void</span><span style="color:#c0c0c0"> </span><span style="color:#800080">QThCamera</span><span style="color:#000000">::</span><span style="font-style:italic;color:#000000">run</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"QThCamera::run()</span><span style="color:#c0c0c0"> </span><span style="color:#008000">start"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">QString</span><span style="color:#c0c0c0"> </span><span style="color:#000000">MPGFileName=</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"a.mpg"</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">MJPEGFileName=</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"a.mjpg"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">CvCapture</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*Capture=</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Capture=</span><span style="color:#c0c0c0"> </span><span>cvCreateCameraCapture</span><span style="color:#000000">(</span><span>Index</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(!Capture)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"Cannot</span><span style="color:#c0c0c0"> </span><span style="color:#008000">open</span><span style="color:#c0c0c0"> </span><span style="color:#008000">or</span><span style="color:#c0c0c0"> </span><span style="color:#008000">initialize</span><span style="color:#c0c0c0"> </span><span style="color:#008000">webcam!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">ExternalFrame</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>cvNamedWindow</span><span style="color:#000000">(</span><span style="color:#008000">"Frame"</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800080">CV_WINDOW_AUTOSIZE</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">IplImage</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*frame=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">CvFont</span><span style="color:#c0c0c0"> </span><span style="color:#000000">font;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvInitFont</span><span style="color:#000000">(&font,</span><span style="color:#c0c0c0"> </span><span>CV_FONT_HERSHEY_SIMPLEX</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0.5f</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0.5f</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">AVOutputFormat</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pOutputFormat=</span><span style="color:#c0c0c0"> </span><span>av_guess_format</span><span style="color:#000000">(</span><span style="color:#008000">"mpegts"</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(!pOutputFormat)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"Could</span><span style="color:#c0c0c0"> </span><span style="color:#008000">not</span><span style="color:#c0c0c0"> </span><span style="color:#008000">set</span><span style="color:#c0c0c0"> </span><span style="color:#008000">output</span><span style="color:#c0c0c0"> </span><span style="color:#008000">format,</span><span style="color:#c0c0c0"> </span><span style="color:#008000">using</span><span style="color:#c0c0c0"> </span><span style="color:#008000">MPEG."</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pOutputFormat=</span><span style="color:#c0c0c0"> </span><span>av_guess_format</span><span style="color:#000000">(</span><span style="color:#008000">"mpeg"</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(!pOutputFormat)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"Could</span><span style="color:#c0c0c0"> </span><span style="color:#008000">not</span><span style="color:#c0c0c0"> </span><span style="color:#008000">set</span><span style="color:#c0c0c0"> </span><span style="color:#008000">output</span><span style="color:#c0c0c0"> </span><span style="color:#008000">format."</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">AVFormatContext</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pFormatCtx;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span>avformat_alloc_output_context2</span><span style="color:#000000">(&pFormatCtx,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pOutputFormat,</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">)<</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"avformat_alloc_output_context2</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Error!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">AVStream</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pVideoStream=</span><span style="color:#c0c0c0"> </span><span>av_new_stream</span><span style="color:#000000">(pFormatCtx,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(!pVideoStream)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"av_new_stream</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Error!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">AVCodecContext</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pCodecCtx=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pVideoStream-></span><span style="color:#800000">codec</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">codec_id</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#800080">CODEC_ID_H264</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">codec_type</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#800080">AVMEDIA_TYPE_VIDEO</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">bit_rate</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">40000</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">width</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">height</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">time_base</span><span style="color:#000000">.</span><span style="color:#800000">den</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">25</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">time_base</span><span style="color:#000000">.</span><span style="color:#800000">num</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">1</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">gop_size</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">10</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">pix_fmt</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#800080">PIX_FMT_YUV420P</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(pFormatCtx-></span><span style="color:#800000">oformat</span><span style="color:#000000">-></span><span style="color:#800000">flags</span><span style="color:#c0c0c0"> </span><span style="color:#000000">&</span><span style="color:#c0c0c0"> </span><span>AVFMT_GLOBALHEADER</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">flags</span><span style="color:#c0c0c0"> </span><span style="color:#000000">|=</span><span style="color:#c0c0c0"> </span><span>CODEC_FLAG_GLOBAL_HEADER</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>av_dump_format</span><span style="color:#000000">(pFormatCtx,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">MPGFileName.</span><span>toStdString</span><span style="color:#000000">().</span><span>c_str</span><span style="color:#000000">(),</span><span style="color:#c0c0c0"> </span><span style="color:#000080">1</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">AVCodec</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pCodec=</span><span style="color:#c0c0c0"> </span><span>avcodec_find_encoder</span><span style="color:#000000">(pCodecCtx-></span><span style="color:#800000">codec_id</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(!pCodec)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"avcodec_find_encoder</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Error!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span>avcodec_open</span><span style="color:#000000">(pCodecCtx,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodec)<</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"avcodec_open</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Error!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span>avio_open</span><span style="color:#000000">(&pFormatCtx-></span><span style="color:#800000">pb</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">MPGFileName.</span><span>toStdString</span><span style="color:#000000">().</span><span>c_str</span><span style="color:#000000">(),</span><span style="color:#c0c0c0"> </span><span>AVIO_FLAG_WRITE</span><span style="color:#000000">)<</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"url_fopen</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Error!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span>avformat_write_header</span><span style="color:#000000">(pFormatCtx,</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">)!=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"av_write_header</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Error!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">int</span><span style="color:#c0c0c0"> </span><span style="color:#000000">BYTEPIC=</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*</span><span style="color:#c0c0c0"> </span><span style="color:#000080">3</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">uint8_t</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pOutBuffer=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800080">uint8_t</span><span style="color:#000000">*)</span><span>malloc</span><span style="color:#000000">(BYTEPIC);</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">QFile</span><span style="color:#c0c0c0"> </span><span style="color:#000000">QFFileOut;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">QFFileOut.</span><span>setFileName</span><span style="color:#000000">(MJPEGFileName);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">QFFileOut.</span><span style="font-style:italic;color:#000000">open</span><span style="color:#000000">(</span><span style="color:#800080">QIODevice</span><span style="color:#000000">::</span><span style="color:#800080">WriteOnly</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">int</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Frames=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">QDateTime</span><span style="color:#c0c0c0"> </span><span style="color:#000000">QDTStart=</span><span style="color:#c0c0c0"> </span><span style="color:#800080">QDateTime</span><span style="color:#000000">::</span><span>currentDateTime</span><span style="color:#000000">();</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">while</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">DoStart</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(!</span><span>cvSetChannel</span><span style="color:#000000">(Capture,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Channel</span><span style="color:#000000">))</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"Unable</span><span style="color:#c0c0c0"> </span><span style="color:#008000">to</span><span style="color:#c0c0c0"> </span><span style="color:#008000">set</span><span style="color:#c0c0c0"> </span><span style="color:#008000">channel."</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">frame=</span><span style="color:#c0c0c0"> </span><span>cvQueryFrame</span><span style="color:#000000">(Capture);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(frame)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">MainForm</span><span style="color:#000000">-></span><span>ui</span><span style="color:#000000">-></span><span>QCBAutoBrightness</span><span style="color:#000000">-></span><span>isChecked</span><span style="color:#000000">())</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">int</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Brightness=</span><span style="color:#c0c0c0"> </span><span>BrightnessOfAPixel</span><span style="color:#000000">(frame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Brightness=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">((Brightness</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*</span><span style="color:#c0c0c0"> </span><span style="color:#000080">200</span><span style="color:#c0c0c0"> </span><span style="color:#000000">/</span><span style="color:#c0c0c0"> </span><span style="color:#000080">256</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">-</span><span style="color:#c0c0c0"> </span><span style="color:#000080">100</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*</span><span style="color:#c0c0c0"> </span><span style="color:#000000">-</span><span style="color:#000080">1</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">IplImage</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*frame2=</span><span style="color:#c0c0c0"> </span><span>ContrastBrightness</span><span style="color:#000000">(frame,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Brightness);</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvCopyImage</span><span style="color:#000000">(frame2,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvReleaseImage</span><span style="color:#000000">(&frame2);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">IplImage</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*frame2=</span><span style="color:#c0c0c0"> </span><span>ContrastBrightness</span><span style="color:#000000">(frame,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">MainForm</span><span style="color:#000000">-></span><span>ui</span><span style="color:#000000">-></span><span>QHSContrast</span><span style="color:#000000">-></span><span>value</span><span style="color:#000000">(),</span><span style="color:#c0c0c0"> </span><span style="color:#800000">MainForm</span><span style="color:#000000">-></span><span>ui</span><span style="color:#000000">-></span><span>QHSBrightness</span><span style="color:#000000">-></span><span>value</span><span style="color:#000000">());</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvCopyImage</span><span style="color:#000000">(frame2,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvReleaseImage</span><span style="color:#000000">(&frame2);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">MainForm</span><span style="color:#000000">-></span><span>ui</span><span style="color:#000000">-></span><span>QCBShowDateTime</span><span style="color:#000000">-></span><span>isChecked</span><span style="color:#000000">())</span><span style="color:#c0c0c0"> </span><span>cvPutText</span><span style="color:#000000">(frame,</span><span style="color:#c0c0c0"> </span><span style="color:#800080">QDateTime</span><span style="color:#000000">::</span><span>currentDateTime</span><span style="color:#000000">().</span><span>toString</span><span style="color:#000000">(</span><span style="color:#008000">"dd-MM-yyyy</span><span style="color:#c0c0c0"> </span><span style="color:#008000">hh:mm:ss"</span><span style="color:#000000">).</span><span>toAscii</span><span style="color:#000000">(),</span><span style="color:#c0c0c0"> </span><span>cvPoint</span><span style="color:#000000">(</span><span style="color:#000080">10</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">20</span><span style="color:#000000">),</span><span style="color:#c0c0c0"> </span><span style="color:#000000">&font,</span><span style="color:#c0c0c0"> </span><span>cvScalar</span><span style="color:#000000">(</span><span style="color:#000080">255</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">255</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">255</span><span style="color:#000000">));</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">MainForm</span><span style="color:#000000">-></span><span>ui</span><span style="color:#000000">-></span><span>QRBRotate90</span><span style="color:#000000">-></span><span>isChecked</span><span style="color:#000000">())</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">IplImage</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*frame2=</span><span style="color:#c0c0c0"> </span><span>Rotate</span><span style="color:#000000">(frame,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">90</span><span style="color:#000000">);</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvCopyImage</span><span style="color:#000000">(frame2,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvReleaseImage</span><span style="color:#000000">(&frame2);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">MainForm</span><span style="color:#000000">-></span><span>ui</span><span style="color:#000000">-></span><span>QRBRotate180</span><span style="color:#000000">-></span><span>isChecked</span><span style="color:#000000">())</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">IplImage</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*frame2=</span><span style="color:#c0c0c0"> </span><span>Rotate</span><span style="color:#000000">(frame,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">180</span><span style="color:#000000">);</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvCopyImage</span><span style="color:#000000">(frame2,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvReleaseImage</span><span style="color:#000000">(&frame2);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">MainForm</span><span style="color:#000000">-></span><span>ui</span><span style="color:#000000">-></span><span>QRBRotate270</span><span style="color:#000000">-></span><span>isChecked</span><span style="color:#000000">())</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">IplImage</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*frame2=</span><span style="color:#c0c0c0"> </span><span>Rotate</span><span style="color:#000000">(frame,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">270</span><span style="color:#000000">);</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvCopyImage</span><span style="color:#000000">(frame2,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvReleaseImage</span><span style="color:#000000">(&frame2);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">ExternalFrame</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>cvShowImage</span><span style="color:#000000">(</span><span style="color:#008000">"Frame"</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>QImage</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Image(frame-></span><span style="color:#800000">width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame-></span><span style="color:#800000">height</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>QImage</span><span style="color:#000000">::</span><span>Format_RGB888</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">const</span><span style="color:#c0c0c0"> </span><span style="color:#808000">unsigned</span><span style="color:#c0c0c0"> </span><span style="color:#808000">char</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*data=</span><span style="color:#c0c0c0"> </span><span>NULL</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">data=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#808000">unsigned</span><span style="color:#c0c0c0"> </span><span style="color:#808000">char</span><span style="color:#000000">*)(frame-></span><span style="color:#800000">imageData</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Image=</span><span style="color:#c0c0c0"> </span><span>QImage</span><span style="color:#000000">(data,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame-></span><span style="color:#800000">width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame-></span><span style="color:#800000">height</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">frame-></span><span style="color:#800000">widthStep</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span>QImage</span><span style="color:#000000">::</span><span>Format_RGB888</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">DoStart</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#808000">emit</span><span style="color:#c0c0c0"> </span><span>SendNewImage</span><span style="color:#000000">(Image);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">QByteArray</span><span style="color:#c0c0c0"> </span><span style="color:#000000">ByteArray;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">QBuffer</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Buffer(&ByteArray);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Image.</span><span>save</span><span style="color:#000000">(&Buffer,</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"JPG"</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">QFFileOut.</span><span>write</span><span style="color:#000000">(ByteArray);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">QFFileOut.</span><span>write</span><span style="color:#000000">(</span><span style="color:#800080">QDateTime</span><span style="color:#000000">::</span><span>currentDateTime</span><span style="color:#000000">().</span><span>toString</span><span style="color:#000000">(</span><span style="color:#008000">"yyyyMMddhhmmsszzz"</span><span style="color:#000000">).</span><span>toAscii</span><span style="color:#000000">());</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">AVFrame</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pAVFrame=</span><span style="color:#c0c0c0"> </span><span>avcodec_alloc_frame</span><span style="color:#000000">();</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">uint8_t</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*pBuffer=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800080">uint8_t</span><span style="color:#000000">*)</span><span>malloc</span><span style="color:#000000">(</span><span>avpicture_get_size</span><span style="color:#000000">(</span><span style="color:#800080">PIX_FMT_YUV420P</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#000000">));</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>avpicture_fill</span><span style="color:#000000">((</span><span style="color:#800080">AVPicture</span><span style="color:#000000">*)pAVFrame,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pBuffer,</span><span style="color:#c0c0c0"> </span><span style="color:#800080">PIX_FMT_YUV420P</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>IplImageToAVFrame</span><span style="color:#000000">(frame,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pAVFrame,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Width</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800000">Height</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#800080">PIX_FMT_YUV420P</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">pAVFrame-></span><span style="color:#800000">pts</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Frames;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">int</span><span style="color:#c0c0c0"> </span><span style="color:#000000">OutSize=</span><span style="color:#c0c0c0"> </span><span>avcodec_encode_video</span><span style="color:#000000">(pCodecCtx,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pOutBuffer,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">BYTEPIC,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pAVFrame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(OutSize></span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">AVPacket</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Packet;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>av_init_packet</span><span style="color:#000000">(&Packet);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(pCodecCtx-></span><span style="color:#800000">coded_frame</span><span style="color:#000000">-></span><span style="color:#800000">pts</span><span style="color:#c0c0c0"> </span><span style="color:#000000">!=</span><span style="color:#c0c0c0"> </span><span>AV_NOPTS_VALUE</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Packet.</span><span style="color:#800000">pts</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span>av_rescale_q</span><span style="color:#000000">(pCodecCtx-></span><span style="color:#800000">coded_frame</span><span style="color:#000000">-></span><span style="color:#800000">pts</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">time_base</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pVideoStream-></span><span style="color:#800000">time_base</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//if</span><span style="color:#c0c0c0"> </span><span style="color:#008000">(pCodecCtx->coded_frame->key_frame)</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Packet.flags</span><span style="color:#c0c0c0"> </span><span style="color:#008000">|=</span><span style="color:#c0c0c0"> </span><span style="color:#008000">AV_PKT_FLAG_KEY;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Packet.</span><span style="color:#800000">stream_index</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pVideoStream-></span><span style="color:#800000">index</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Packet.</span><span style="color:#800000">data</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pOutBuffer;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Packet.</span><span style="color:#800000">size</span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span><span style="color:#000000">OutSize;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span>av_interleaved_write_frame</span><span style="color:#000000">(pFormatCtx,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">&Packet)!=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"av_interleaved_write_frame</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Error!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">Frames++;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(Frames></span><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">time_base</span><span style="color:#000000">.</span><span style="color:#800000">den</span><span style="color:#c0c0c0"> </span><span style="color:#000000">/</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pCodecCtx-></span><span style="color:#800000">time_base</span><span style="color:#000000">.</span><span style="color:#800000">num</span><span style="color:#c0c0c0"> </span><span style="color:#000000">*</span><span style="color:#c0c0c0"> </span><span style="color:#000080">10</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span style="color:#808000">break</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>av_free</span><span style="color:#000000">(pAVFrame);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>free</span><span style="color:#000000">(pBuffer);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span><span style="color:#c0c0c0"> </span><span style="color:#808000">else</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"QThCamera::run()</span><span style="color:#c0c0c0"> </span><span style="color:#008000">frame=</span><span style="color:#c0c0c0"> </span><span style="color:#008000">false"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">QFFileOut.</span><span style="font-style:italic;color:#000000">close</span><span style="color:#000000">();</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Frames</span><span style="color:#c0c0c0"> </span><span style="color:#000000">/</span><span style="color:#c0c0c0"> </span><span style="color:#000000">QDTStart.</span><span>secsTo</span><span style="color:#000000">(</span><span style="color:#800080">QDateTime</span><span style="color:#000000">::</span><span>currentDateTime</span><span style="color:#000000">());</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>free</span><span style="color:#000000">(pOutBuffer);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span>av_write_trailer</span><span style="color:#000000">(pFormatCtx)!=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"av_write_header</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Error!"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>avio_close</span><span style="color:#000000">(pFormatCtx-></span><span style="color:#800000">pb</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>avcodec_close</span><span style="color:#000000">(pVideoStream-></span><span style="color:#800000">codec</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">for</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#808000">int</span><span style="color:#c0c0c0"> </span><span style="color:#000000">count=</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">;</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#808000">unsigned</span><span style="color:#000000">)count<</span><span style="color:#c0c0c0"> </span><span style="color:#000000">pFormatCtx-></span><span style="color:#800000">nb_streams</span><span style="color:#000000">;</span><span style="color:#c0c0c0"> </span><span style="color:#000000">count++)</span><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>av_freep</span><span style="color:#000000">(&pFormatCtx-></span><span style="color:#800000">streams</span><span style="color:#000000">[count]-></span><span style="color:#800000">codec</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>av_freep</span><span style="color:#000000">(&pFormatCtx-></span><span style="color:#800000">streams</span><span style="color:#000000">[count]);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>av_free</span><span style="color:#000000">(pFormatCtx);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>cvReleaseCapture</span><span style="color:#000000">(&Capture);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">if</span><span style="color:#c0c0c0"> </span><span style="color:#000000">(</span><span style="color:#800000">ExternalFrame</span><span style="color:#000000">)</span><span style="color:#c0c0c0"> </span><span>cvDestroyWindow</span><span style="color:#000000">(</span><span style="color:#008000">"Frame"</span><span style="color:#000000">);</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span>qDebug</span><span style="color:#000000">()</span><span style="color:#c0c0c0"> </span><span style="color:#000000"><<</span><span style="color:#c0c0c0"> </span><span style="color:#008000">"QThCamera::run()</span><span style="color:#c0c0c0"> </span><span style="color:#008000">stop"</span><span style="color:#000000">;</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">}</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">Now, if I have understand, all works in this mode:</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">1) In order to encode something with FFMpeg you must define a AVFormatContext object, that is a container.</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">2) Use "av_guess_format("mpegts", NULL, NULL);" for explain wich is the container type. In this case "mpegts" means mpeg4.</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">3) In the container you must define a stream that can be CODEC_ID_H264</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">4) With "av_interleaved_write_frame(pFormatCtx, &Packet)" you can insert a packet that contains a frame in the stream.</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">Is that right?</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">That I not have understand is: The pts and dts values must be express at container level? Stream level? Frame level? Packet level?</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">Wich is the right way to calculate pts and dts value?</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#000000">The only thing that I do is this "pAVFrame->pts= Frames;" in order to not obtain this error: "non-strictly-monotonic PTS"</span></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px;color:#000000"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">-- </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><a href="http://www.denisgottardello.it" target="_blank">www.denisgottardello.it</a></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Skype: mrdebug</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Videosurveillance and home automation! </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><a href="http://www.denisgottardello.it/DomusBoss/DomusBossIndice.php" target="_blank">http://www.denisgottardello.it/DomusBoss/DomusBossIndice.php</a></p>
</div>
<br>_______________________________________________<br>
Libav-user mailing list<br>
<a href="mailto:Libav-user@ffmpeg.org" target="_blank">Libav-user@ffmpeg.org</a><br>
<a href="http://ffmpeg.org/mailman/listinfo/libav-user" target="_blank">http://ffmpeg.org/mailman/listinfo/libav-user</a><br>
<br></blockquote></div><br><br clear="all"><br><br>