VideoHelp Forum
+ Reply to Thread
Results 1 to 8 of 8
Thread
  1. Member
    Join Date: Jul 2014
    Location: United States
    Search Comp PM
    The more threads I read on here the more confused I get. I'm not sure if this is the correct location for this question but here goes. I am learning a lot but have a long way to go. Thanks in advance.

    Problem description:
    I have some fast action of a mountain biker racing along a wooded trail, that I took using a chest mounted GoPro HD Hero camera.
    I have encoded this footage many times, using various different settings, that all look quite nice, locally.
    The uploaded final product on YouTube however, looks terrible.

    Initially I would think that the action is too fast, but when the videos are viewed locally, on the computer, they look fine.

    I am hoping, by showing my workflow, that someone may be able to give me an idea of what can be done to get the youtube uploads to look better.

    Dell Windows 8 laptop:
    Operating System: Windows 8 build 9200 (64-bit)
    CPU Type: Intel Core i7-3632QM @ 2.20GHz
    Number of CPUs: 1 Cores per CPU: 4 Hyperthreading: Not Capable
    Motherboard: 029M77
    Memory: 8GB Samsung DDR3 SDRAM
    Videocard: Intel(R) HD Graphics 4000
    Videocard: NVIDIA GeForce GT 640M
    Hard Drive: ST9750420AS (750GB)
    Hard Drive: SAMSUNG SSD PM8 (8GB)

    Footage shot with these settings:
    GoPro HD Hero, GoPro Chesty mount, mode r3 16:9, HD, 720p(1280 x 960),60fps NTSC, Upside Down

    Video Editing/Encoding:
    Adobe Premiere Pro CS5 w/Zeranoe (http://ffmpeg.zeranoe.com/builds/) ffmpeg windows 64 bit binary - that has lbx264 already compiled in.

    Available Preset: Digital SLR/720p/DSLR 720p60
    Preset Description: For editing most DSLR Formats (like the Canon EOS Movie Full HD series)
    recorded in 1280x720 square pixels. 16:9
    Progressive HD video at 59.94 frames per second.
    48 kHz audio.
    General:
    Editing mode: DSLR
    Timebase: 59.94fps

    Video Settings
    Frame size: 1280h 720v (1.0000)
    Frame rate: 59.94 frames/second
    Pixel Aspect Ratio: Square Pixels (1.0)
    Fields: No Fields (Progressive Scan)

    Audio Settings
    Sample rate: 48000 samples/second

    Default Sequence
    Total video tracks: 3
    Master track type: Stereo
    Mono tracks: 0
    Stereo tracks: 3
    5.1 tracks: 0
    Submix mono tracks: 0
    Submix stereo tracks: 0
    Submix 5.1 tracks: 0

    Name:  sequence_preset.JPG
Views: 154
Size:  84.5 KB

    My encoding progression:
    - I have done this for a while with very good local viewing results and acceptable youtube viewing but this footage is MUCH SLOWER ACTION. Only problem is large output file size.
    Export Settings: Match Sequence Settings,

    Click image for larger version

Name:	export_settings_match_sequence_settings.JPG
Views:	53
Size:	47.5 KB
ID:	26046

    - I then tried researching H.264 settings and came up with this:

    Click image for larger version

Name:	export_settings_h.264_recommended_for_youtube.JPG
Views:	60
Size:	69.3 KB
ID:	26047

    The output file sizes were much smaller and the local output was still quite nice. Youtube upload was terrible.

    - At this point I started looking for tools outside of PP,
    - I installed the utvideo, lossless codec for premiere. (https://trac.ffmpeg.org/wiki/Encode/PremierePro).
    - FFMPEG program with the libx264 plugin already installed from Zerenoe (http://ffmpeg.zeranoe.com/builds/)

    This new workflow meant:
    - sending the PP export through utvideo to produce a lossless output file.

    Click image for larger version

Name:	export_settings_utvideo_lossless.JPG
Views:	53
Size:	58.8 KB
ID:	26048

    Select Microsoft AVI
    video codec utvideo yuv420 BT.709
    unlinked the frame size to set my 720p video to 1280x720
    matched 59.94, changed to progressive, Aspect square pixels

    - Use FFMpeg to encode the lossless output file from above:

    As you can see I am pretty much just using the defaults, here are some executions I used:

    ffmpeg -i "lossless.avi" -c:v libx264 -preset medium -crf 18 -c:a copy "30sectest_medium_18.mkv"
    ffmpeg -i "lossless.avi" -c:v libx264 -preset slower -crf 18 -c:a copy "30sectest_slower_18.mkv"
    ffmpeg -i "lossless.avi" -c:v libx264 -preset veryslow -crf 18 -c:a copy "30sectest_veryslow_18.mkv"
    ffmpeg -i "lossless.avi" -c:v libx264 -preset veryslow -crf 9 -c:a copy "30sectest_veryslow_9.mkv"

    This is the best encoding I have so far, when viewed locally :
    http://www.mediafire.com/download/4jvlc9vvmh141lk/30sectest_veryslow_9.mkv

    Video
    ID : 1
    Format : AVC
    Format/Info : Advanced Video Codec
    Format profile : High@L5.0
    Format settings, CABAC : Yes
    Format settings, ReFrames : 16 frames
    Codec ID : V_MPEG4/ISO/AVC
    Duration : 25s 468ms
    Width : 1 280 pixels
    Height : 720 pixels
    Display aspect ratio : 16:9
    Frame rate mode : Constant
    Frame rate : 59.880 fps
    Color space : YUV
    Chroma subsampling : 4:2:0
    Bit depth : 8 bits
    Scan type : Progressive
    Writing library : x264 core 142 r2431 ac76440
    Encoding settings : cabac=1 / ref=16 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=9.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
    Default : Yes
    Forced : No


    Here are the Youtube uploads:
    30sectest medium 18: http://youtu.be/1WSFod2TMwI
    30sectest slower 18: http://youtu.be/nPosQ9L2xnU
    30sectest veryslow 18: http://youtu.be/hLSvy1FyaPg
    30sectest veryslow 9: http://youtu.be/oBHAZqdvCnA

    Code:
                       size   bitrate
          medium 18:    93     30.6
          slower 18:    71     23.3
          veryslow 18:  73     24.1
          veryslow 9:  141     46.5
    
            matchseq:   85     28
    h264_ythintsver :   46     15.3
    Please let me know if there is any other information I need to provide.

    Anything I am doing that is wrong or not needed and or what should I do? Thanks.
    Quote Quote  
  2. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    Not much you can do about youtube. Consider using your own hosting or somewhere else

    The main issue is the bitrate YT uses is too low for any complex content, such as fast motion. Fast motion, noise are adversely affect compression (modern compression algorithms store the differences between frames). That's why it looked "passable" before when you did this with slower motion. And I guess asking the biker to ride more slowly isn't an option

    You can add some motion blur, temporal denoising - it may help marginally with compression on YT's end, and may look slightly better . I doubt it will make a big difference on this type of footage

    Stabilization will help slightly with compression as well (for the same reasons), but I doubt you want to do it on this type of footage

    Look at your bitrates 24 to 46 Mb/s , YT will re-eencode with ~2.5 to 4 Mb/s . It's going to look like garbage eitherway at 1/10 of the bitrate




    EDIT: I had a look at your crf9 local file - Your source has problems to begin with. It's noisy, full of blocking artifacts. You need to prefilter the crap out if it before uploading to YT with denoising, deblocking filters . YT is struggling to retain all those artifacts at low bitrates. It will look far less detailed locally, but that's the tradeoff you have to make to have it look watchable on YT . Think of it this way - even if you used another host, streamed the file as-is without re-encoding 20-40 Mb/s isn't exactly "streaming friendly" . Even if you doubled the typical delivery bitrate it will look like crap unless you filter it
    Last edited by poisondeathray; 3rd Jul 2014 at 15:49.
    Quote Quote  
  3. Originally Posted by Back-N-Black View Post
    Initially I would think that the action is too fast, but when the videos are viewed locally, on the computer, they look fine.
    To add to what pdr said, apparently you didn't realize YouTube reencodes/compresses everything? And at much lower bitrates than when you uploaded it? To confirm, just download your video from YouTube and begin comparing it with your source. The more complex (fast) the action, the worse it's going to look. About all you can do is follow his suggestions - denoise and smooth the heck out of it. It'll look like crap compared to how it looked originally, but the YouTube reencode should look much better.
    Quote Quote  
  4. aBigMeanie aedipuss's Avatar
    Join Date: Oct 2005
    Location: 666th portal
    Search Comp PM
    the best quality you can hope for would be to upload the original source files to youtube and let it do the one and only re-encoding.
    --
    "a lot of people are better dead" - prisoner KSC2-303
    Quote Quote  
  5. Member
    Join Date: Jul 2014
    Location: United States
    Search Comp PM
    Thanks all for the responses, I think this is a lost cause but may be a learning opportunity for me.

    First things, like you already mentioned, stabilize, not possible when mounting to rider so use more static viewpoints, ok, will try that. Slow down rider, . Shoot in more light? What about fps, GoPro can shoot all the way up to 120fps, should I shoot at lower fps or higher fps? This probably sounds stupid, change to lower fps with software after?

    @PDR: I have read some of the instructions in these threads and wow, very complicated sounding. With that in mind, knowing what tools I have now, can you recommend how I would go about "prefilter the crap out if it before uploading to YT with denoising, deblocking filters? I've seen mentions of tools I have not really used before, are there any simple steps you can outline? Did I use the correct ffmpeg command line options?

    @manono: I did that for the first time yesterday, you are not kidding about that. Now I need to figure out how to denoise and smooth.

    @aedipuss: I have been uploading the "Match My Settings" encoded versions straight from PP for a while but I think you are probably referring to uploading the "lossless" version created by my utvideo step, is that what you are saying?
    Quote Quote  
  6. Member Cornucopia's Avatar
    Join Date: Oct 2001
    Location: Deep in the Heart of Texas
    Search Comp PM
    Look at your past workflows and see how many times you have (lossily) re-encoded it. The minimum it could be would be 1 (YT's). If you are starting with something as compressed as yours is, you cannot afford to go above that. You have (gone over), almost every time. If you can at all swing it, save all your intermediates losslessly, including your YT uploads.

    Scott
    "When will the rhetorical questions end?!" - George Carlin
    Quote Quote  
  7. Member
    Join Date: Jul 2014
    Location: United States
    Search Comp PM
    Again I may be showing my lack of knowledge in this area. There is the raw files from the GoPro camera, edited with PP. The edit is exported using the Utvideo plugin to create a GIGANTIC avi file. Is this exported avi file completely lossless at this point?
    Quote Quote  
  8. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    Yes UT will be lossless, if in the same colorspace (there will be no losses from compression) . e.g. if you used some RGB filters, those sections will have been converted to RGB in PP . That is a non issue here even if you converted to RGB.

    There are many ways to denoise, deblock etc... look at some avisynth filters, virtualdub filters, MSU filters. Various workflows are disussed here and on many other forums. A favorite for many people is neat video (which also has PP, AE, vdub plugin versions)

    But I think no matter what you do, it's going to be a problem for youtube. It's just impossible to make it look great for this type of motion at 2.5-4 Mb/s with current AVC encoding. Perhaps when HEVC matures it might produce better results
    Quote Quote