andy vt's tools & blog

automating lazy

This Blog


andy vt's blog

  • QSTranscode - Now on SourceForge

    I've been meaning to migrate QSTranscode from my local SVN to a public repository for a while. Finally got around to it today.

    Binaries will be hosted on SourceForge and here, main change is that it will be much easier to get/merge source changes.

  • QSTranscode -

    I just realized that I never released this rev. The change log is small, but there were some bigger changes to the internals to add non-MSDK supported video CODECs support.
    - Check video codec profile for HW support
    - Decode video codecs that are unsupported by MSDK with FFMPEG
    - Explicit DX11 support

  • QSTranscode -
    - If "-of 23" is specified and the reported frame rate is 29.97 soft telecine mode will be enabled (video is converted at 23.976)
    - Fix a bug where folder based sources didn't signal EOF properly


  • Security is a hassle. That's the point.

    We don't put locks on our doors because it's convenient. We do it to create inconvenience when someone wants to open them, hoping the bad guys respect that - moving on to an easier target. We use other methods like alarms, cameras, etc. to encourage the selection of other, easier, targets. None of these things is a guarantee against a determined adversary and the right tools. Using these techniques is not costless to us. It's a pain to have to carry a key, remember to carry a key, enter key codes or set the alarm. Of course we do these things because the hassle it creates for us, also affects those who would otherwise prey on our stuff. It generally works because the hassle is disproportionate.

    The same thing is true about electronic doors. We use passwords and usernames to lock down accounts on the Interwebs. Making the same exchange in hassle (i.e. remembering passwords & usernames on myriad sites) there, as we do in the physical realm, hoping to realize the same disproportionate trade-off - two factor authentication doesn't change the fundamentals it just ratchets up the inconvenience realized by us and the bad guys.

    Adding to this, we have to trust that the companies that host "our" data are investing the appropriate amount of care in building locks and safes. Are they using SSL, hashing our passwords, or building social-engineering resistant recovery mechanisms? These things aren't free, they cost money (a lot of money) and time to buy, build, and implement properly - everywhere.

    At its core security is just about creating inconvenience, hopefully uneconomically viable amounts of inconvenience, and that's a hassle. For everyone. If only it was this easy:

    Posted Apr 11 2013, 05:27 AM by babgvant with no comments
    Filed under:
  • QSTranscode -
    - Add sanity checks on FFMPEG reported frame rate
    - Don't parse AAC, FLAC, or COOK audio
    - Revert to FFMPEG 1.13
    - Drop audio frames scheduled before video stream begins
    - Use the aspect ratio to calculate unspecified width/height parameters except when the AR = 1
    - Add support for soft telecined video files (unlike DVDs they will be encoded at reported framerate)


  • QSTranscode -
    - Don't try to select non-folder sources audio tracks by language
    - Don't crash when an unsupported video codec is found
    - Update to FFMPEG 1.2
    - Add -cp argument to select an encoding profile
    - Add -cl argument to select an encoding level



  • QSTranscode -
    - Add BDMV support
    - Add -rc arg to select rate control method


  • QSTranscode -
    - Better support for files without audio
    - Add VIDEO_TS support


  • QSTranscode -
    - Better handle files where the frame rate is not detected by scanning the header
    - Better support for VC-1
    - Add -detect arg to dump the file format without processing the file
    - Add support for files without audio


  • QSTranscode


    Command line utility that can be used to transcode video files using Intel QuickSync for
    decoding/encoding and FFMPEG for container and audio support. Edit files are supported in
    EDL and XML format for editing while transcoding.

    Special thanks to Hendrik Leppkes & Eric Gur for their efforts on LAV Filters and the
    Intel QuickSync Decoder and for opening the code for these projects. They demonstrated
    many of the concepts leveraged here as well as providing source code.

    Usage: qstranscode.exe -i "InputFile" -o "OutputFile" -w width -h height [options]
    Where [options] can be:
        [-h264|-mpeg2|-jpeg] - output video codec
        [-aac|-ac3|-mp3] - output audio codec, if missing audio will be copied without transcoding
        [-f frameRate] - output video frame rate
        [-b bitRate] - encoded video bit rate (Kbits per second), valid for H.264, MPEG2 and MVC encoders
        [-u 1|4|7] - target usage: quality (1), balanced (4) or speed (7); valid for H.264, MPEG2 and MVC encoders. Default is balanced
        [-q quality] - quality parameter for JPEG encoder; in range [1,100], 100 is the best quality
        [-l numSlices] - number of slices for encoder; default value 0
        [-w] - destination picture width, if both width & height are unspecified detected intput size will be used, can be used with height or by itself where output height will be calculated
        [-h] - destination picture height, if both width & height are unspecified detected intput size will be used, can be used with width or by itself where output width will be calculated
        [-async] - depth of asynchronous pipeline. Default value 25.
        [-sw|-hw|-hw_d3d11] - SDK implementation to use: t-hw - platform-specific on default display adapter (default),t-hw_d3d11 - platform-specific via d3d11t-sw - software.
        [-join] - join session with other session(s), by default sessions are not joined
        [-priority] - use priority for join sessions. 0 - Low, 1 - Normal, 2 - High. Normal by default
        [-n ] - Number of frames to limit transcoding
        [-angle 180] - enables 180 degrees picture rotation user module before encoding
        [-opencl] - uses implementation of rotation plugin (enabled with -angle option) through Intel(R) OpenCL
        [-deinterlace] - forces VPP to deinterlace input stream, if unset interlaced video will be deinterlaced if detected
        [-ab bitRate] - encoded audio bit rate (Kbits per second), defaults to 64000
        [-ac channels] - number of audio channels to mix to, defaults to 2 use 0 to specify "auto"
        [-at tracknumber] - audio track to transcode, when unset the "best" audio track is used
        [-e EditsFile] - path to EDL or XML file with cut points
    - Initial release


  • SageDCT - 2.7.2

    Getting closer...

    - Add FfmpegProbeMultiplier setting. Multiplies default ffmpeg probesize by this number. Default is 1.
    - Add FfmpegAnalyzeMultiplier setting. Multiplies default ffmpeg max_analyze_duration by this number. Default is 1.
    - Use av_find_best_stream to select video and audio tracks to be placed in position 0 & 1 in output file.


  • FfmpegTest

    A few weeks ago I was having a realy hard time trying to figure out how to transcode audio with ffmpeg. It turned out to pretty straight forward, but I ended up crawling through ffmpeg.c to find out how to do it.

    As I want to figure out other concepts with ffmpeg I will add them to this project. Because it's not terribly useful (mostly POC) just source is available in SVN.

    Hopefully this will save others time and trouble.

  • SageDCT - 2.7.0

    Haven't heard any negative feedback (besides speed) of the new Ffmpeg capture method so I'm opening up 2.7.0 to Early Access members.

    - Add Ffmpeg RTP capture method. Preferred way to capture TS for other platforms



    Posted Feb 27 2013, 07:22 AM by babgvant with no comments
    Filed under:
  • FFMpegMux

    Simple command line utility that can be used to remux media files from one container to another. The main purpose is to scrub MPTS files created by SageDCT so media programs that don't deal with these files well can play a remuxed version.


    Posted Feb 16 2013, 03:41 PM by babgvant with no comments
    Filed under:
  • DTB R5 - EA Release

    This is an Early Access release.

    - Add support for LAV Video decoder (forces DI and HWA decode, if available, during transcoding)
    - Fix a bug in codec detection when incomplete video stream informations is present
    - Fix a bug where JRSidecar xml files are deleted by the FW cleanup process
    - Incorporate updated TVDB scrapper action
    - Stop registering OOTB filters globally
    - Transition to "Known Filters" registration scheme, loader will fall back on global lookups (normal DS) in some cases
    - Bundle LAV and Haali filters with DTB in unregistered state
    - Remove outdated applications from installer. Now available via separate download.
    - Fix a memory leak in the FW when multiple update events are fired in rapid succession.
    - Better support for EDL files when not using SageTV
    - Better support for storing artifacts with TV files
    - Add support for Mi Casa Verde Vera HA scene execution
    - Fix bug introduced earlier in FindCommercials
    - Change DTB VE to use registrationless COM filter method


More Posts « Previous page - Next page »
@2008 andy vt
Powered by Community Server (Non-Commercial Edition), by Telligent Systems