VideoHelp Forum
+ Reply to Thread
Results 1 to 23 of 23
Thread
  1. Hi,

    I'm uploading gameplay videos to youtube, my raw source is x264 baseline 4.0 crf=18, 60fps, avi container

    convert to x264 high profile 5.1, crf=26 or better, 30fps mp4 container then upload to youtube

    or

    upload the avi directly to youtube, let them process the video


    the raw video looks good and really smooth, but If I encode it to fps 30 (by using MeGUI, ChangeFPS(30)), the result video looks choppy like most of the videos on youtube,

    I do know that youtube only supports 30fps videos, I tried both convert to 30fps then upload, or upload the 60fps raw source directly to youtube, the results are the same.

    (yes I know lower framerate means less smoothness, but...)

    I saw there are some ppl on youtube, their gameplay videos still look really smooth even encoded in 30fps

    Just like the videos captured from Digital Video Cameras,

    is there anyway to encode videos from 60fps source to 30fps and still keep maximum smoothness?
    or do I need some sort of filter to make smoother motion in lower framerates like 30fps?

    here are my video examples on youtube, they are encoded from the same source.

    30fps
    http://youtu.be/0lw-cM6X22I

    fake 60fps (plays at 2.0x speed become 60fps, need at least 3Mbps connection for 360p without buffering)
    required HTML5 player, enable it on http://www.youtube.com/html5 and play it at 2.0x speed.
    http://youtu.be/ypgRxabGdic

    I hope I can keep maximum possible smoothness on 30fps video just like the fake 60fps video
    Last edited by squall0833; 5th Apr 2012 at 09:11. Reason: typo
    Quote Quote  
  2. Originally Posted by squall0833 View Post
    I hope I can keep maximum possible smoothness on 30fps video just like the fake 60fps video
    You can't. When you convert to 30 fps use constant frame rate mode. That might help.
    Quote Quote  
  3. in general you could by encoding interlaced, but that wouldn't help with youtube
    Quote Quote  
  4. Thanks

    I'll try using mg262's motion.dll blendfps(), but the outcome may look odd, blend from 60 to 30 is about half, it may look funny

    convertfps() does the good job but target fps must not lesser than 2/3 fps of original input

    I'll see how then

    it would be best if youtube allows 60fps video views someday
    Quote Quote  
  5. yes that would help to push 60p usage forward and also help to kill off interlace footage for home videos

    BTW if you'd have web site, jwplayer in it, no problem with 60p , it is one of those false presumptions that somehow 60p has to be doubled in size , bitrate doubled and that your computer will choke and such., YouTube could step in towards 60p, it would be nice, why not, encode the same frame rate as original, same bit rate for 60p as for 30p if this is an issue for them, something to start with.
    Quote Quote  
  6. it is one of those false presumptions that somehow 60p has to be doubled in size , bitrate doubled and that your computer will choke and such.
    Since you clearly seem to know stuff I don't know please explain http://forum.doom9.org/showthread.php?t=128545 (+ newer TGMC get's the ratio down to 1.5)
    Judging from this, 60p footage should at least have 50% more bitrate, but you suggest "same bit rate for 60p as for 30p".

    Cu Selur

    Ps.: I'm also pro 60p.
    Last edited by Selur; 5th Apr 2012 at 16:54.
    Quote Quote  
  7. I'll read that link later, ...., uncompressed video is doubled in size, that's clear, just to start there, so everybody understands that it cannot be double in size encoded,

    It is being underestimated that smoothness of 60p has a profound effect , you watch it next to 30p (shot interlace with shutter up in the sky somewhere, very short) and it is nice, it is shown as was recorded, with particular shutter speed.
    Quote Quote  
  8. uncompressed video is doubled in size, that's clear, just to start there, so everybody understands that it cannot be double in size encoded,
    yes, compared to the uncompressed input, compressed content should always be smaller,.. (most people will not start from uncompressed content,.. even DV is compressed and nearly all cameras out there use compressed formats,.. so starting from uncompressed content typically only is the case if you feed the encoder with i.e. rendered frames, or similar stuff)
    Quote Quote  
  9. Originally Posted by squall0833 View Post
    I'll try using mg262's motion.dll blendfps(), but the outcome may look odd, blend from 60 to 30 is about half, it may look funny

    convertfps() does the good job but target fps must not lesser than 2/3 fps of original input
    I saw sections of your video where frames were duplicated and multiple consecutive frames were dropped. Simple decimation like SelectEven() will work better than smart decimation when converting 60p to 30p. You'll still have the inherent jerkiness of 30p but at least you won't have duplicate frames and multiple consecutive skipped frames.
    Quote Quote  
  10. Originally Posted by jagabo View Post
    Originally Posted by squall0833 View Post
    I'll try using mg262's motion.dll blendfps(), but the outcome may look odd, blend from 60 to 30 is about half, it may look funny

    convertfps() does the good job but target fps must not lesser than 2/3 fps of original input
    I saw sections of your video where frames were duplicated and multiple consecutive frames were dropped. Simple decimation like SelectEven() will work better than smart decimation when converting 60p to 30p. You'll still have the inherent jerkiness of 30p but at least you won't have duplicate frames and multiple consecutive skipped frames.

    So how to use SelectEven()?

    I'm actually new to avisynth, not quite understand how to use this SelectEven(), any good example? especially for 60 to 30
    Quote Quote  
  11. Originally Posted by squall0833 View Post
    So how to use SelectEven()?

    I'm actually new to avisynth, not quite understand how to use this SelectEven(), any good example? especially for 60 to 30
    WhateverSource("filename.ext") # 60p source
    SelecteEven() # keep even numbered frames, throw out odd numbered frames
    Last edited by jagabo; 5th Apr 2012 at 22:19.
    Quote Quote  
  12. Originally Posted by squall0833 View Post
    So how to use SelectEven()?
    For example: This will get rid of every other frame while keeping the same time so you get 30p from 60p:

    AviSource("your.uncompressed.60p")
    SelectEven()

    this script you load into x264 encoder


    OK. You used interlaced as source and not 30p and 60p original videos. So we can compare.
    I do not use CQ but CRT, not sure why you insist to test it with it, it is going to be poeple to watch it, but anyway, one guy is talking sense there that you have to compare visually. You tried CQ with your video and was trying to figure out why is that that bob took almost double bit rate. Poisondeathray got some 2.6 ratio for some bob there, this is insane. Your question was there why it is happening with your video, academically stated, studied, you wanna know something but real world example by comparison is more handy I'd say.

    Saying that, I get completely different results, source clean DV avi, 60i, and this keeps pattern for bitrate as I state below, pretty much for all videos 15% on the top of 30p for 60p:

    83.1MB - 60p QTGMC CRF18
    71.9MB - 30p QTGMC, CRF 18, selecteven()

    and then I encode 60p and 30p same way with 2000kbps , 2pass, SAME bitrate and 60p is better by any means, that smoothness just beats 30p to the ground. No visual differences in quality either. Why do I have those results I do not know. Type of video, noise , as always everything turns around what concrete video we talk about, one cannot generalize here ? I always talk about camcorder videos here , no movies, TV rips etc.

    As I said before somewhere I discovered that long time ago, encoded 60p with same bitrate by mistake as for 30p and could not believe that , before with 2pass I always got it too much bitrate because of that global "you need tons of more bitrate for 60p" scare crow
    Quote Quote  
  13. Originally Posted by _Al_ View Post
    Saying that, I get completely different results, source clean DV avi, 60i, and this keeps pattern for bitrate as I state below, pretty much for all videos 15% on the top of 30p for 60p:

    83.1MB - 60p QTGMC CRF18
    71.9MB - 30p QTGMC, CRF 18, selecteven()
    I'm sure it will vary depending on the partucular video, but that's in line with what I've seen. For example, I took an interlaced HD MPEG 2 source and got the following:

    x264 30i: 22440 kbps
    x264 30p (QTGMC, SelectEven): 16439 kbps
    x264 60p (QTGMC): 18781 kbps
    x264 60p (Bob): 25836 kbps

    Those were all encoded at --crf=18, --preset=slow, --bff for the 30i video
    Quote Quote  
  14. And we compare 30p vs. 60p , if we start 30i vs 60p it is going to be even more interesting, I have also much more bit rate demand for 30i when tested then for 60p. Always was curious about that but it did not bother me too much because I do not encode H.264 interlace at all.
    Quote Quote  
  15. I just ran the same test on some shaky DV video, similar conditions:

    x264 30i: 3861 kbps
    x264 30p (QTGMC, SelectEven): 2488 kbps
    x264 60p (QTGMC): 2867 kbps
    x264 60p (Bob): 3545 kbps
    Quote Quote  
  16. Member Cornucopia's Avatar
    Join Date: Oct 2001
    Location: Deep in the Heart of Texas
    Search Comp PM
    Well, it makes sense in a weird logic sort of way...

    Mpeg tracks "differences".
    The differences between frames is less with 60p than with 30p or 30i, so those smaller differences are easier to track. More efficient.
    Works similarly with HD vs. SD, or high Fs audio v. Std Fs audio, Surround vs. Stereo vs. Mono, Stereo3d vs 2d...

    Scott
    Quote Quote  
  17. Originally Posted by _Al_ View Post
    Originally Posted by squall0833 View Post
    So how to use SelectEven()?
    For example: This will get rid of every other frame while keeping the same time so you get 30p from 60p:

    AviSource("your.uncompressed.60p")
    SelectEven()

    this script you load into x264 encoder

    just... add SelectEven() into my script? thats all ?

    will try it later
    Quote Quote  
  18. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    No, use SelectOdd()




    Quote Quote  
  19. Originally Posted by poisondeathray View Post
    No, use SelectOdd()




    Okay, how do you determine to use even or odd?
    Quote Quote  
  20. I do not use CQ but CRT, not sure why you insist to test it with it,..
    Because they use different rate control algorithms and cq is the better way to measure the source complexity.
    Quote Quote  
  21. Originally Posted by squall0833 View Post
    Originally Posted by poisondeathray View Post
    No, use SelectOdd()

    Okay, how do you determine to use even or odd?
    That was a joke. You can use either. Sometimes there's a reason to prefer one over the other. A particular video might have corruption only in the odd numbered frames, for example.
    Quote Quote  
  22. Member
    Join Date: May 2009
    Location: United States
    Search Comp PM
    Thought I might chime in on this. I had to make a similar decision somewhat recently, insofar as what to do with a video whose framerate exceeds Youtube's spec. In my estimation, there were only two options. Either blend every pair of frames, or upload it as 60fps despite what Youtube would ultimately render it as. I chose the latter.

    This is because Youtube will eventually find the need to begin supporting higher framerates. I expect this transition to occur more or less in sync with the first proper trailer(s) for the Hobbit movie. Said movie was filmed at 48fps and will be shown in theaters at 48fps. In order to get theaters on board, the idea will need to be pushed into public awareness. Meanwhile, most people looking for new trailers go to Youtube to find them. I fully expect Youtube to be approached in order to ensure that they enable a 48fps presentation for the Hobbit trailer(s). The alternative prospect is that the trailer is made exclusive to some lesser video service which already does 48+fps... and this is quickly re-posted a hundred times to Youtube where most people will still be searching for it. So, with Youtube already prospectively exceeding 30fps for the first time, there is every incentive for them to take the plunge and support higher framerates universally.

    And when that happens, I think it is a reasonable bet that past videos which exceeded Youtube's spec will be re-encoded, one by one, until the entire library is up to speed, just as had been done when Youtube went HD. This would include my video, of course. ;p
    Quote Quote  



Similar Threads