<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_extra"><br><div class="gmail_quote">2017-01-13 17:41 GMT+11:00 BugMaster <span dir="ltr"><<a href="mailto:BugMaster@narod.ru" target="_blank">BugMaster@narod.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="m_-2526766761508464020gmail-">On Fri, 13 Jan 2017 16:12:59 +1100, YIRAN LI wrote:<br>
> 2017-01-13 15:08 GMT+11:00 YIRAN LI <<a href="mailto:mrfun.china@gmail.com" target="_blank">mrfun.china@gmail.com</a>>:<br>
<br>
> Hi guys,<br>
<br>
</span>Hi.<br>
<span class="m_-2526766761508464020gmail-"><br>
> I'm trying to convert a sequence of video frames, first half 30<br>
> fps, second half 25 fps. Can X264 encode such frame sequence and output timestamps same as input.<br>
<br>
> I mean if the time stamps of frames sent to x264 is like:<br>
<br>
> 0, 0.333, 0.666, 0,999, 1.25, 1,5, 1.75 2.0<br>
<br>
</span>This looks like 3- and 4-fps sequence. For 30- ans 25-fps time stamps should be:<br>
0, 0.0333(3), 0.0666(6), 0.1, 0.14, 0.18, 0.22, 0.26<br>
<span class="m_-2526766761508464020gmail-"><br>
> can x264 accept them? will 8 encoded frames be output? will output<br>
> frames duration still 0.333, 0.333, 0.333, 0.333 then 0.25, 0.25, 0.25, 0.25?<br>
<br>
> Thanks<br>
<br>
> ​Hi, just to clarify that I'm not using the x264 command line tool,<br>
> I'm using the API. I think I can't use force-cfr or -fps, but I also<br>
> can't set timebase in this case, can I ?​<br>
<br>
</span>For 3- ans 4-fps you can use VFR encoding with timebase 1/12 and i_pts of:<br>
0, 4, 8, 12, 15, 18, 21, 24<br>
<br>
For 30- ans 25-fps you can use VFR encoding with timebase 1/150 and i_pts of:<br>
0, 5, 10, 15, 21, 27, 33, 39<br>
<br></blockquote><div class="gmail_default" style="font-family:georgia,serif">​Great thanks for this.</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default" style="font-family:georgia,serif"><ol><li>So timebase 1/150 is set when I open the encoder, i_pts is set on the x264_picture_t I send to encoder, correct?<br></li><li>By "time stamps are part of the container" you mean it's ok to encode without setting the i_pts and I can set it before sending encoded frames to muxer? If true, one thing I'm curious is, will every frame sent to encode function sure to return one frame? otherwise if 2 frames encoded to 1 frame, then what timestamp should I assign to the encoded frame?  If every frame sent to encode function is sure to yield a frame, just assign timestamp of the uncompressed frame to the encoded frame is ok?</li><li> 30 + 25 hybrid can be precisely expressed by 1/150, how if the possible frame rate unknown? Set to a high value like 1/1000?</li></ol></div><div class="gmail_default" style="font-family:georgia,serif">​</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Anyway time stamps are really part of container not of raw H.264 so if<br>
you don't need VFR ratecontrol than you can encode it at any fps and<br>
mux with correct time stamps latter.<br>
<div class="m_-2526766761508464020gmail-HOEnZb"><div class="m_-2526766761508464020gmail-h5"><br>
______________________________<wbr>_________________<br>
x264-devel mailing list<br>
<a href="mailto:x264-devel@videolan.org" target="_blank">x264-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x264-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/l<wbr>istinfo/x264-devel</a><br>
</div></div></blockquote></div><br></div></div>