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.
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
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
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.
Editing mode: DSLR
Frame size: 1280h 720v (1.0000)
Frame rate: 59.94 frames/second
Pixel Aspect Ratio: Square Pixels (1.0)
Fields: No Fields (Progressive Scan)
Sample rate: 48000 samples/second
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
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,
- I then tried researching H.264 settings and came up with this:
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.
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 :
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
Please let me know if there is any other information I need to provide.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
Anything I am doing that is wrong or not needed and or what should I do? Thanks.
+ Reply to Thread
Results 1 to 8 of 8
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 16:49.
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
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?
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.
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?
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