VideoHelp Forum
+ Reply to Thread
Page 1 of 4
1 2 3 ... LastLast
Results 1 to 30 of 104
Thread
  1. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Hello all, I am new to this forum but have been reading this forum for a while.
    I have done some searches too but can't find an exact answer.

    Playing with Canon 5D's .mov file for a while makes me believe that it is an excellent format for
    storage so I try to use virtualdub's direct stream copy as much as possible to preserve the original encoding.

    However, some footages require deshaking and after so direct stream copy is not possible any more.
    It would be nice if I can find a good encoder as good as the Canon .mov encoder to re-encode the deshaked file.
    I like the Canon .mov very much because of its compression ratio and quality as well as colour retention.

    I have tried a few other encoders like Huffy or Lagarith for lossless compression but the files are too big compared to the
    original Canon .mov. Also tried the x264vfw encoder but it changes the black point, giving wash out colours.

    So my question is:

    Is there a real Canon .mov encoder for download? If the answer is no, which encoder (preferably free), has
    the quality and compression ratio similar to the original Canon .mov encoder?

    Thanks a lot!

    -------------------------------------------------------------------------------------------------------------------------
    Edit 20140912

    In summary, the following workflow worked well for me in re-encoding Canon 5Dmk2 .mov file after deshake:

    1) Decode Canon 5D2 .mov using avisynth & preview with AvsPMod

    LoadPlugin("C:\Virtualdub32\FFMS2\ffms2.dll")
    FFmpegSource2("MVI_8695.mov", threads=1, atrack=-1)
    ConvertToRGB32(matrix="PC.601" )

    2) Use Avsf to quick mount the .avs file in (1) so that it can frameserve to Virtualdub 64 for deshaking (I found Virtualdub 64 more robust in deshaking)

    3) Deshake in virtualdub and tweak parameters for best stabilization in pass 1 and pass 2; it is important to set rolling shutter to 70% for 5D2.

    4) Use FFmpeg external decoder to export the resulting .mp4 file with the following switches

    -f rawvideo -s %(width)x%(height) -r %(fpsnum)/%(fpsden) -i - -vcodec libx264 -level 51 -preset slow -intra -crf 12 -qmin 1 -pix_fmt yuv420p -vf colormatrix=bt601:bt709 -x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709 "%(tempvideofile)"

    5) Copy the original audio track from original.mov to the exported output.mp4 video only file:

    ffmpeg -i original.mov -i new.mp4 -map 0:1 -map 1:0 -c:v copy -c:a copy -f mov output.mov

    6) Double check audio sync, if good then we are done. If not, we need to sync it up in virtualdub or similar application.
    Last edited by PhotoCat; 12th Sep 2014 at 20:48.
    Quote Quote  
  2. Member racer-x's Avatar
    Join Date: Mar 2003
    Location: 3rd Rock from the Sun
    Search Comp PM
    Your "Canon's mov encoder" is nothing special. It uses H.264 video with PCM audio. You could duplicate the encoding settings if you export via external encoder such as x264. You'll need to learn how to use this feature.
    The memories of a man in his old age, are the deeds of the man in his prime.......
    Quote Quote  
  3. Originally Posted by PhotoCat View Post
    Also tried the x264vfw encoder but it changes the black point, giving wash out colours.
    x264vfw does not change levels. Something else in your processing or viewing is responsible.
    Quote Quote  
  4. Member
    Join Date: Jul 2014
    Location: Denmark
    Search Comp PM
    If on windows: have you tried to re-encode the video to mp4 (x264/mp3) with ffmpeg using the deshake filter to remove shake? You can try the FFQueue GUI (I've made that) for ffmpeg which gives easy access to the deshake filter by letting you specify exactly where and how much shake to fix. You should know that if you "over fix" shake this will result in unwanted "retention". Also: most deshaking algorithms will always generate some degree of "retention".

    Good luck!
    Quote Quote  
  5. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    5D's compression ratio is actually terrible - it's well known established fact (baseline AVC, no b-frames)

    RE: levels - you're probably either :
    a) experiencing the "quicktime gamma shift bug". Basically quicktime has well known issues with gamma and levels.

    b) the software or configuration you have is getting confused with the full range flag. Canon DSLR's record with a "full range" flag in the AVC bitstream which causes issues with some software

    1) How are you previewing the "original" ? what software ?

    2) How are you loading the MOV's into vdub ?

    3) How does it look in vdub / deshaker preview before exporting ?

    4) How are you previewing the output files (what software) ?
    Quote Quote  
  6. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Wow, thanks all for the informative replies! I am in the right place here

    TorBru:

    Will definitely try your FFQueue GUI with deshaker. Heard ffmpeg so many times but have not tried it.

    I used deshaker 3.0 within Virtualdub 1.10.4 (64bit). Needed to tweak a lot of parameters by hand and
    the deshake results were great. I can compress with Huffy or Lagarith into avi and plays with windows media player no problem.
    Vy high color fidelity matching the original.

    Only when I compressed the output using x264vfw that I get a little foggy image. levels (10,1,...) fixed it but it is not desirable.
    Quote Quote  
  7. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Originally Posted by poisondeathray View Post
    5D's compression ratio is actually terrible - it's well known established fact (baseline AVC, no b-frames)

    RE: levels - you're probably either :
    a) experiencing the "quicktime gamma shift bug". Basically quicktime has well known issues with gamma and levels.

    b) the software or configuration you have is getting confused with the full range flag. Canon DSLR's record with a "full range" flag in the AVC bitstream which causes issues with some software

    1) How are you previewing the "original" ? what software ?

    2) How are you loading the MOV's into vdub ?

    3) How does it look in vdub / deshaker preview before exporting ?

    4) How are you previewing the output files (what software) ?
    1) Windows media player
    2) I have QuickTime installed on my win7 machine and virtualdub can read .mov file no problem
    3) Vdub/deshaker looks great before exporting.
    4) For preview with deshaker, I used virtualdub but it is jerky. If deshaker is not used, I use avisynth & avspmod

    Tks for all the help!
    Quote Quote  
  8. Member racer-x's Avatar
    Join Date: Mar 2003
    Location: 3rd Rock from the Sun
    Search Comp PM
    1) Download and install latest Virtualdub version 1.10.4.
    2) Download ffmpeg and copy ffmpeg.exe to your HDD, you can put it in Virtualdub if you want.
    3) Download and unpack Export.vdprof in the attached zip file.
    4) Run Virtualdub and click Options > External encoders.
    5) Import Export.vdprof. Make sure to change directory location of ffmpeg.exe!
    6) When you are ready to export, click File > Export > Using external encoder....

    I put I-Frame Mpeg-2 and I-Frame AVC for you to choose from. You'll have to export audio separately.
    Attached Files
    Last edited by racer-x; 24th Aug 2014 at 15:08.
    The memories of a man in his old age, are the deeds of the man in his prime.......
    Quote Quote  
  9. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Wow, thanks racer-x! Everything worked (steps 1-6)
    Seems high quality output too despite the compression is abt 0.6x the original 5D .mov file

    1080P 29.97fps
    Original .mov: 485MB for 1:25min
    Compressed .mp4: 785MB for 1:25min

    However, I am still getting the funny effect of black turning grey.
    A right shift of the black point by about 10 fixed the problem but the overall color is still a little less saturated then the original .mov

    Perhaps what poisondeathray mentioned is at work??

    quote:
    RE: levels - you're probably either :
    a) experiencing the "quicktime gamma shift bug". Basically quicktime has well known issues with gamma and levels.

    b) the software or configuration you have is getting confused with the full range flag. Canon DSLR's record with a "full range" flag in the AVC bitstream which causes issues with some software
    end quote


    When I read the .mov file into virtualdub, the file info says: brand "qt", decompressor ffdshow

    There must be something I am doing wrong. Please help!
    Quote Quote  
  10. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Here is the command line argument of ffmpeg. Perhaps the switch -level 51 is causing problems??

    -f rawvideo -s %(width)x%(height) -r %(fpsnum)/%(fpsden) -i - -vcodec libx264 -level 51 -preset ultrafast -intra -crf 8 -qmin 1 "%(tempvideofile)"
    Quote Quote  
  11. Member racer-x's Avatar
    Join Date: Mar 2003
    Location: 3rd Rock from the Sun
    Search Comp PM
    level 51 refers to the AVC level and has nothing to do with color levels. Poisondethray is correct (as usual), it's a qt issue. You can try the ffmpeg input plugin for virtual dub.
    The memories of a man in his old age, are the deeds of the man in his prime.......
    Quote Quote  
  12. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Repeating the experiments: actually all output files .avi or .mp4 viewed within virtualdub look the same.
    When viewed with windows media player, the results are different. Quicktime virtualdub input plugin used.

    Tried the ffmpeg input plugin for virtualdub. It gives a slightly more washed out feel when viewed inside virtualdub but it
    certainly contains more shadow details. The preview again is consistent within virtualdub but not inside windows media player in win7 64.

    Let me do some screen captures & try to post the jpg here. Thanks a lot!
    Quote Quote  
  13. Originally Posted by PhotoCat View Post
    The preview again is consistent within virtualdub but not inside windows media player in win7 64.
    Your graphics card's video proc amp is probably configured incorrectly.

    Originally Posted by PhotoCat View Post
    Let me do some screen captures & try to post the jpg here.
    Screen caps probably won't be helpful. We all know what the issue is. The question is where is it happening. VirtualDub always converts YUV to RGB (where the filtering happens) with a rec.601 matrix. If you are giving it full range YUV (apparently what your camera puts out) it will crush darks and brights. You need to convert the YUV to RGB with a PC.601 matrix first then give it to VirtualDub, or reduce the YUV from full range (0-255) to standard video range (16-235).
    Quote Quote  
  14. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Thanks jagabo for the pointer. How should I config the video card? What parameters? Now it is set to follow the video player setting.
    There is a setting to use Nvidia setting to limited range to 16-235. Card is Geforce GT520.

    I have avisynth installed too and I also have qtinput/qtsource. Perhaps I should process the Canon 5D2 .mov file in avisynth first using qtinput/qtsouce
    and then do some PC.601 matrix conversion to recover the correct level?

    I found this page for PC.601 matrix conversion in avisynth.

    http://avisynth.nl/index.php/Convert

    Which command should I use? Is the following ok?

    ConvertToRGB32(matrix="PC.601" )

    Tks!
    Quote Quote  
  15. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    It sounds like a playback configuration problem, because if preview in vdub is ok (make sure you disable directx in the configuration), then output should be using normal levels Y' 16-235 . When played back with normal/proper calibrated setup, everything looks normal



    Some of the issues also depends on what decoder you are using.

    Bitstream has a full range flag. Some decoders like libav/ffmpeg based ones read the flag and decode at full range YUV 0-255 (at least they used to, there are some changes where newer versions do not anymore). With a normal Rec matrix for converting to RGB for display - the display will be clipped (blown brights, crushed darks)

    QT clamps level YUV 16-235. So with Normal Rec matrix for converting to display, everything looks normal. Note that it's clamped, not clipped

    WMP depends on how you have it configured for directshow filters and graphics cards settings.






    Rec601 vs 709. Files from this camera (and many Canon and Nikon DSLRs) have metadata suggesting 601. (most HD by default uses 709). Some user prefer to use 601, others 709 there is some disagreement . This does not affect the levels or black/white point, just the colors will be shifted slightly. You can experiment to see what you prefer . Vdub always uses Rec601 for RGB<=>YUV conversions . If you wan something else, you have to route it through avisynth or ffmpeg


    Color primaries : BT.709
    Transfer characteristics : BT.709
    Matrix coefficients : BT.601
    Quote Quote  
  16. Also, if you encode as rec.601 you should flag it. Most players will display unflagged HD as rec.709. If you were to use x264vfw you can add "--colormatrix=bt470bg" to the extra options box.
    Quote Quote  
  17. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    ^Yes - and a safer way to do that is to change everything to 709, flag as 709, because many media players ignore flag and do it based on dimensions

    So even if you wanted to use 601 when converting to RGB importing into vdub, after exporting from vdub, convert back to YV12 with 709 matrix, encode with 709 flags

    This way you have the highest chance if it looking the way you want everywhere. Flag reading players will know it's 709, non reading players will still know it's 709. Even if you upload it to youtube, vimeo, send it to friends etc... 709 is the norm for HD
    Quote Quote  
  18. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Tks poisondeathray & jagabo once again. How do I set/unset the flag? Sorry I am a video newbie with only a couple of months' experience. Your help is highly appreciated!
    Last edited by PhotoCat; 25th Aug 2014 at 13:14.
    Quote Quote  
  19. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Also how do I know if I am using the right level 0-255 or 16-235, other than looking at the clip and see if the black/white being crashed?
    Last edited by PhotoCat; 25th Aug 2014 at 13:13.
    Quote Quote  
  20. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    You can use a waveform monitor to see Y' levels. In avisynth you can use histogram() to see Y' levels. Areas in "brown" are "illegal" 0-15, 236-255. You will see that the source filter used can affect the levels that you get.



    There are several areas that might be set up incorrectly - monitor calibration, graphics card, decoder settings, video player settings, renderer settings etc...

    1st thing - in vdub options => preferences => display => UNcheckmark "use Direct X for display panes". Push save , push ok. Close vdub & restart . Now reload the video as you have been, with deshaker etc... does it still look ok ?



    The 709 flag really isn't that important. It doesn't change the actual YUV data. It's just a "suggestion" to the video player to use Rec709 when displaying the video. As mentioned above, many players ignore it. But it's "more correct" to include it than to leave it out.

    You can add this to the extra command line options . That only works if you export RGB from vdub, then encode with avisynth using ConvertToYV12(matrix="Rec709") . If you export using x264vfw directly, you will convert from RGB (because you're using deshaker in RGB) =>YV12 using Rec601, so it will be flagged incorrectly . Or you can use vdub external encoder with ffmpeg, and use the colormatrix filter

    Code:
    --colorprim bt709 --transfer bt709 --colormatrix bt709
    Last edited by poisondeathray; 25th Aug 2014 at 13:40.
    Quote Quote  
  21. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Tks poisondeathray for the tips! Will give that a try. Monitor cal should be fine as I am experienced in photo editing.
    Vdub direct x option unchecked already but nothing changed.
    Need to spend more time to absorb what u just told me...
    Sounds like using external encoder with ffmpeg is more fool proof? (A newbie like me needs that lol)
    Tks once again!
    Quote Quote  
  22. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    It's the YUV<=>RGB issues that cause major problems in the video world

    You still have to figure out your levels issue. It really sounds like a playback configuration issue, because the output video file from deshaker/vdub, should look same as the vdub preview in terms of levels. (colors might be slightly shifted , as media player will probably use 709 to convert back to RGB for display)



    Originally Posted by PhotoCat View Post

    Sounds like using external encoder with ffmpeg is more fool proof? (A newbie like me needs that lol)



    It's not easy to use for beginners, but If you want to use vdub external encoder feature, look at the guide on the vdub forum. There are members here that have posted guides and presets as well, so use search function

    The additional commandline parameters you want to add for ffmpeg libx264 are to convert as if you had used Rec709, and flag Rec709:

    Code:
    -pix_fmt yuv420p -vf colormatrix=bt601:bt709 -x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709
    The "-vf colormatrix=bt601:bt709" is the filter that converts in YUV , as if the RGB conversion to YUV was done using the 709 matrix in the first place. Because 2 conversions are done (first from RGB to YUV using Rec601, then In YUV the colormatrix filter) , the quality is slightly lower than doing it directly with avisynth ConvertToYV12(matrix="rec709") in 1 step

    The "-x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709" signal libx264 to put 709 flags into the bitstream

    If you use x264cli, the commandline parameters were posted above for the flags. x264cli doesn't have the ability to convert RGB to YUV data with 709 matrix
    Quote Quote  
  23. Use the video in this post to verify correct levels setup for your graphics card:

    http://forum.videohelp.com/threads/326496-file-in-Virtualdub-has-strange-colors-when-o...=1#post2022085

    What you see on the monitor should like the first of the two images, not the second. That DV AVI has normal levels for video (Y= 16 to 235), not the extended range your camera produces. Video from your camera will have crushed black and blown out brights when played if your player doesn't compensate for the full range luma.

    There's an MPEG version in this post:

    http://forum.videohelp.com/threads/353338-Avisynth-ColorYUV-Gamma-is-doubling-the-enco...=1#post2220162
    Last edited by jagabo; 25th Aug 2014 at 16:31.
    Quote Quote  
  24. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Tks poisondeathray for your further explanations! Highly appreciated!

    jagabo: oh no, the test mpg file in windows media player looks like the 2nd pic!! My video card is not calibrated right!!
    But then if I calibrate it to accommodate the test mpg, my still pics display will have crashed black and white... not good...
    This is puzzling! I better read more...
    Quote Quote  
  25. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    There should be 2 separate settings for your graphics card; one for the desktop, the other for the video overlay.

    The "desktop" settings affect still pictures, browser, normal apps etc... The overlay settings affect video players that use the overlay renderer for video
    Quote Quote  
  26. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Thanks agn poisondeathray! I found it & it seems to work!

    Under Nvidia control panel, video->Adj video color->advanced->dynamic range

    I had to change it to Full (0-255) to get it to work. Limited (16-235) selection didn't work.

    So with this Full (0-255) setting, I can view jagabo's test mpeg exactly as picture #1 in windows media player...
    Have yet to experiment with other previewer like virtualdub!
    Quote Quote  
  27. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Thank poisondeathray once again for your detailed replies and I had to read it a few times b4 I
    started to understand them.

    So in summary, we should stick with rec709 matrix all the time when performing YUV <-> RGB conversion.

    Ok, let me try to describe my new workflow here and pls help along the way.

    Video editing workflow (high quality) when deshaker is needed:

    1) Canon 5D2 takes HD movies into .mov format (1080p 30fps)
    2) Use Avisynth as a frame server to read in the .mov file (via QTsource/QTinput input plugin)
    3) In avisynth, convert from YUY to RGB with rec709 matrix (ConvertToRGB32(matrix="Rec.709" ))
    4) Open the avisynth .avs file inside virtualdub
    5) Perform deshake 3.0 filtering pass1 & pass2 and stay in RGB
    6) Compress with Lagarith Lossless codec and output a .avi file and stay in RGB
    7) read the Lagarith compressed .avi file into avisynth again and convert to YUY2 using ConvertToYUY2(matrix="Rec.709")
    8) Frameserve that into virtualdub again and write out a H.264 .mp4 file using FFmpeg external encoder, using the
    command line switches: -pix_fmt yuv1080p -vf -x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709

    Wow, that's a lot of steps to adhere to the Rec.709 standard. To be honest, I am just guessing steps 6, 7 & 8.
    Am I out to lunch?? Any help will be appreciated!
    Quote Quote  
  28. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    Originally Posted by PhotoCat View Post
    Thank poisondeathray once again for your detailed replies and I had to read it a few times b4 I
    started to understand them.

    So in summary, we should stick with rec709 matrix all the time when performing YUV <-> RGB conversion.

    Ok, let me try to describe my new workflow here and pls help along the way.

    Video editing workflow (high quality) when deshaker is needed:

    1) Canon 5D2 takes HD movies into .mov format (1080p 30fps)
    2) Use Avisynth as a frame server to read in the .mov file (via QTsource/QTinput input plugin)
    3) In avisynth, convert from YUY to RGB with rec709 matrix (ConvertToRGB32(matrix="Rec.709" ))
    4) Open the avisynth .avs file inside virtualdub
    5) Perform deshake 3.0 filtering pass1 & pass2 and stay in RGB
    6) Compress with Lagarith Lossless codec and output a .avi file and stay in RGB
    7) read the Lagarith compressed .avi file into avisynth again and convert to YUY2 using ConvertToYUY2(matrix="Rec.709")
    8) Frameserve that into virtualdub again and write out a H.264 .mp4 file using FFmpeg external encoder, using the
    command line switches: -pix_fmt yuv1080p -vf -x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709

    Wow, that's a lot of steps to adhere to the Rec.709 standard. To be honest, I am just guessing steps 6, 7 & 8.
    Am I out to lunch?? Any help will be appreciated!



    If you're going to export a lagarith RGB intermediate, then there is no reason to go back into vdub

    You might as well encode that avs script directly (and it should be ConvertToYV12(matrix="Rec.709") which is 4:2:0, not YUY2 which is 4:2:2 - unless there was a specific reason for using 422 ?) with ffmpeg or x264 or any GUI of your choice (e.g. megui, ripbot, xvid4psp etc....) . If you use a x264 GUI, then you use the x264 switches for flags, not the ffmpeg switches . There are many FFMpeg GUI's as well if you're not comfortable using commandlines

    If you wanted to output the deshaker pass2 directly, you could use the vdub external encoder , with ffmpeg using the colormatrix filter as described above


    And the switch , if you're using ffmpeg is -pix_fmt yuv420p, not yuv1080p as you have in step 8 . It's specifying the "pixel format" as 4:2:0 planar in YUV colorspace
    Last edited by poisondeathray; 28th Aug 2014 at 16:10.
    Quote Quote  
  29. Member
    Join Date: Aug 2014
    Location: Canada
    Search PM
    Thanks poisondeathray once again! I went for Lagarith .avi output because I thought u mentioned earlier avisyth would give a slightly higher
    quality conversion results in 1 step.

    Ok, Let me revise the workflow, call it workflow#1

    1) Canon 5D2 takes HD movies into .mov format (1080p 30fps)
    2) Use Avisynth as a frame server to read in the .mov file (via QTsource/QTinput input plugin)
    3) In avisynth, convert from YUY to RGB with rec709 matrix (ConvertToRGB32(matrix="Rec.709" ))
    4) Open the avisynth .avs file inside virtualdub
    5) Perform deshake 3.0 filtering pass1 & pass2 and stay in RGB
    6) Compress with Lagarith Lossless codec and output a .avi file and stay in RGB

    step 1-6 same as before.

    7) read the Lagarith compressed .avi file into avisynth again and convert to YV12 using ConvertToYV12(matrix="Rec.709")

    (comment: I though YUY2 has higher quality so I tried to maintain it; I had no idea)

    8) This is what I am confused about. I don't know how to export/encode a video file within avisynth without going back to virtualdub.
    How to use avisynth as an encoder? Or perhaps how to connect avisynth to FFmpeg? I guess that's where megui or ripbot or xvid4psp come in...
    right? Perhaps I will open the .avs file from megui etc? If so, please suggest a simple to use FFmpeg GUI.


    I believe the above work flow (#1) would maintain the highest video quality, right? (going thru Lagarith and back to avisynth)
    But having to create a Lagarith intermediate file is troublesome and diskspace intensive.

    Alternatively, from my understanding, a simpler workflow with slightly less quality (no intermediate file needed),
    can be constructed as follows: (call it workflow #2)

    Perform steps 1)-5) as above

    6) output directly using vdub external encoder ffmpeg with switches as follows:

    -pix_fmt yuv420p -vf colormatrix=bt601:bt709 -x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709

    7) done!

    Please let me know if I am on the right track. Thank you kindly!
    Quote Quote  
  30. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    Originally Posted by PhotoCat View Post
    Thanks poisondeathray once again! I went for Lagarith .avi output because I thought u mentioned earlier avisyth would give a slightly higher
    quality conversion results in 1 step.
    Yes, the conversion yields higher quality, because the conversion from RGB to YUV takes 1 step .(versus converting to YUV, then converting in YUV using colormatrix) . We're not talking about a huge difference - The quality loss difference is very minimal, you really have to go frame by frame and zoom in to see the differences on sharp color edges

    The lagarith export is an additional step in the workflow (lossless, you don't lost quality if you stay in RGB), because it takes more time and effort, HDD space


    (comment: I though YUY2 has higher quality so I tried to maintain it; I had no idea)
    Your source files are YV12, 4:2:0 to begin with. So you're not really losing anything by going back to YV12. If you started with 422 or RGB , then yes, by all means keeping 422 or RGB would make more sense. 422 and RGB versions of AVC are less compatible with media players, devices (but a software media player can playback almost anything). 420 is standard for consumer use


    8) This is what I am confused about. I don't know how to export/encode a video file within avisynth without going back to virtualdub.
    How to use avisynth as an encoder? Or perhaps how to connect avisynth to FFmpeg? I guess that's where megui or ripbot or xvid4psp come in...
    right? Perhaps I will open the .avs file from megui etc? If so, please suggest a simple to use FFmpeg GUI.
    Yes, avisynth is just a frameserver. It doesn't encode anything

    You open the .avs in one of the GUI's or ffmpeg.exe, or x264.exe which can all take .avs as input.

    I tend not to use the GUI's, but for x264, maybe megui, or ripbot. Megui is more comprehensive and harder to use. For ffmpeg, maybe ffqueue, ffcoder or winff ? You have to be able to access/edit the commandline, if you want to add the 709 flags with -x264opts . Some GUI's don't let you do that




    I believe the above work flow (#1) would maintain the highest video quality, right? (going thru Lagarith and back to avisynth)
    But having to create a Lagarith intermediate file is troublesome and diskspace intensive.

    Alternatively, from my understanding, a simpler workflow with slightly less quality (no intermediate file needed),
    can be constructed as follows: (call it workflow #2)

    Perform steps 1)-5) as above

    6) output directly using vdub external encoder ffmpeg with switches as follows:

    -pix_fmt yuv420p -vf colormatrix=bt601:bt709 -x264opts colorprim=bt709:transfer=bt709:colormatrix=bt709

    7) done!

    Please let me know if I am on the right track. Thank you kindly!

    Yes, plus you need the other ffmpeg commands if you choose to use workflow#2. Those commands were just the "additional" ones you need to add for the 709 conversion, and metadata flagging
    Quote Quote