QSTranscode Changelog

What's new in QSTranscode 1.0.4.0

Jun 27, 2014
  • Rev to Ffmpeg 2.2.3
  • Stop forcing DI when den is 2 or 2002, trust the header to report interlaced content
  • Fix [M]JPEG output
  • Fix raw video files (or more generally files without a valid stream start time)

New in QSTranscode 1.0.3.9 (Jun 17, 2014)

  • Add -ref argument
  • Set -b & -mb in GUI regardless of rate control mode
  • Add 9/10/11 rate control modes to GUI
  • Try to use original framerate from MediaInfo if framerate isn't set
  • set -goppicsize = 50% of the target framerate by default (makes the files seek faster)
  • Fix HEVC decoding with Ffmpeg
  • Add multi-threading support for Ffmpeg decoded codecs
  • Fix for native audio pass-through timestamp mechanism

New in QSTranscode 1.0.3.8 (Jun 16, 2014)

  • Rev to latest Ffmpeg (2.2.3?)
  • Better work around files with crazy FPS information
  • Set surface frame flags based on decoded frame information when decoding with Ffmpeg
  • Sanity check selected audio track
  • Use rendered framerate to set input timestamps
  • Expose -genpts in GUI
  • Fix WMV3 header construction
  • Fix issue where unparsed audio codecs wouldn't be decoded properly (e.g. WMAPro)

New in QSTranscode 1.0.3.7 (Jun 16, 2014)

  • Add -genpts, -rtphint, -empty_moov, -frag_keyframe, -separate_moof options
  • Use first audio track PTS to generate PTS when muxing

New in QSTranscode 1.0.3.6 (Mar 13, 2014)

  • Fix an issue with -lads validation

New in QSTranscode 1.0.3.5 (Mar 12, 2014)

  • Add bfr arg
  • Fix ICQ & LA_ICQ rate control methods
  • Don't trust the codec context timebase to make sense. Use the avg/r timebase if it doesn't when calculating input timestamps.
  • Skip all audio/subtitle processing in benchmark mode

New in QSTranscode 1.0.3.4 (Feb 28, 2014)

  • Only use AR to calculate width/height
  • Don't use ticks_per_frame to calculate input timestamps
  • Calculate audio/video start PTS even when not seeking forward so it can be used to adjust A/V sync
  • Seek to 0 (unless -ss is used to override) for all files
  • Respect that MSDK versions < 1.6 do not use DTS
  • Try to adapt to situations where the input timestamps are crap
  • Test AV_CODEC_ID_H264 video streams to determine if they are AVC1 to assign the correct parser
  • Add a feature to seek to a common start point to attempt to deal with files with A/V that doesn't start at the same time. Use -seekstart to enable.
  • Pick the best video stream manually
  • Start moving logging from printf to av_log

New in QSTranscode 1.0.3.3 (Feb 27, 2014)

  • Add some descriptive error messages for initialization errors
  • Retrive and write GFX driver version to output
  • Reorder include/lib folders for cleaner inclusion
  • Retrive and write IPG model to output
  • Only add CodingOptions2 if API version is >= 1.6 (fix encoder init issue with SNB)
  • Write MSDK version before initializing components

New in QSTranscode 1.0.3.2 (Feb 27, 2014)

  • Minor GUI changes
  • Populate decoder parameters using data from ffmpeg context if the MSDK can't get it from extradata
  • Don't feed PTS into the MSDK if we can tell that the timestamps are messed up
  • Set PTS = DTS when muxing if PTS is invalid from MSDK
  • Make sure the first DTS is valid before using it as an offset
  • Change basis of rendered framerate
  • Expose CAVLC Off/On

New in QSTranscode 1.0.3.1 (Feb 11, 2014)

  • Track PTS so we can make up a good one when it is missing
  • Basic support for hard subs, use -st to specify subtitle track and -hardsub to indicate that it should be burned in. Currently hardsubing is done b/w decode and VPP (i.e. pre-DI) because ffmpeg cannot resize the pixel format so it will probably only work with progressive content. Only tested with PGS.
  • Fix issues when converting soft telecined content to higher framerates
  • Keep looking for vobs when trying to detect framerate if the first (_0) isn't found
  • Only set trellis, MBBRC & ExtBRC when encoding AVC (fixes MFX_ERR_INVALID_VIDEO_PARAM error when encoding mpeg2)
  • Fix an issue where timestamps were not set when decoding with ffmpeg
  • Fix an issue where timestamps were not adjusted when using -ss parameter

New in QSTranscode 1.0.3.0 (Feb 5, 2014)

  • Decide whether to drop packets when editing based on the stream's start time instead of the container adjusted start time

New in QSTranscode 1.0.2.9 (Feb 3, 2014)

  • Use frame size instead of bitrate to select best audio track
  • Consider codec type when selecting best audio track
  • Switch GUI to common dialogs
  • Fix detection issues with GUI
  • Move detection in GUI to a background worker
  • Enable ffmpeg rtmp output

New in QSTranscode 1.0.2.8 (Feb 3, 2014)

  • Add support for ICQ and LA_ICQ BRC methods (requires SDK 1.8 drivers)
  • Enable "Advanced" DI method when SDK 1.8 drivers are found and DI is requested
  • Do not use rendered frame rate for folder sources

New in QSTranscode 1.0.2.7 (Jan 14, 2014)

  • Update to MSDK 2014
  • Merge changes from updated MSDK samples
  • Switch to MSDK sample's method for D3D (9/11) device allocation
  • Change GetReportedRenderedFramerate to return 23.976 where appropriate

New in QSTranscode 1.0.2.6 (Jan 6, 2014)

  • Add support for upconverting frame rate
  • Default to using the rendered frame rate for conversions (e.g. interlaced 29.97 will be deinterlaced and encoded as 59.94)

New in QSTranscode 1.0.2.5 (Jan 3, 2014)

  • Support decoding h.264 with Ffmpeg that the MSDK will not decode (other unsupported formats may require the same workaround)
  • When muxing use MSDK PTS directly, adjusting generated DTS by the first MDK DTS if it is negative(MSDK DTS don't always increment progressively)
  • Copy "rotate" video metadata from source to target files if it exists

New in QSTranscode 1.0.2.4 (Dec 30, 2013)

  • Update to Ffmpeg 2.1.1
  • Change memory usage to work with Ffmpeg 2+ enhancements
  • Use MSDK PTS directly when MSDK DTS is not set
  • Set PTS = DTS if PTS < generated DTS when muxing
  • Better timestamp offset calculation, should help with files where packets are corrupt at the begining of the file
  • Switch back to generated DTS/PTS when demuxing

New in QSTranscode 1.0.2.3 (Dec 30, 2013)

  • Revert to Ffmpeg 1.2, 2+ is leaking oodles of memory

New in QSTranscode 1.0.2.2 (Dec 30, 2013)

  • Set PTS in output file based on relationship between MSDK generated timestamps using QSTranscode generated DTS as a reference point
  • Update to Ffmpeg 2.1.1
  • Add support for DirectShow video devices via "video=Friendly Name of Device:audio=Friendly Name of Device" in -i. Note that Ffmpeg messes up the conversion from unicode so you cannot trust the names it reports from -list_devices if they contain special characters. Use the friendlyname DS reports and QSTranscode will convert it using the same method as ffmpeg so they should match.
  • Add -ex argument for configuring devices selected via "video=" mechanism
  • Handle Control-C so proper cleanup/file terminiation can occur

New in QSTranscode 1.0.2.1 (Dec 30, 2013)

  • Language filtering for files that contain it
  • Copy metadata for audio tracks when not transcoding if it exists in the source stream
  • Set language for audio tracks when transcoding if it exists in the source stream
  • Support seeking to an initial start point before transcoding via ss argument
  • Add rmvol argument to control rematrix volume when changing formats
  • Add aasync argument to control SWR "async" setting
  • Fix DVD language track selection
  • Resolve ISO 639-1 to ISO 639-2 language codes
  • lang arg now only works with ISO 639-2 codes
  • Examine all the VOB in a VIDEO_TS title to make a better guess about framerate
  • Include "ffmpeg.exe" shell app to convert ffmpeg args to QSTranscode args

New in QSTranscode 1.0.2.0 (Nov 5, 2013)

  • Add profile support to QSTranscodeGUI
  • Fix an issue where files targeted at "F:\" would be streamed (oops).

New in QSTranscode 1.0.1.9 (Nov 1, 2013)

  • Support creation of IIS Smooth Streaming output. Use -o pathtoutput.ismv to signal the behavior (note this feature removes the ability to create whole .ismv files). The target folder must not exist (FFmpeg will create it) and the files will be created there. For e.g. -o f:\temp\out\something.ismv will output the IIS Smooth Streaming in f:\temp\out.
  • Set mfxBitstream DecodeTimeStamp instead of TimeStamp with generated video timestamp
  • Add live555 integration for RTP/RTSP streaming. Pass the desired URL via -o. RTP requires the destination IP and port (e.g. rtp://239.255.42.42:1234). Port should be even. RTSP requires IP and port (e.g. rtsp://127.0.0.1:554), but only port is used because the machine's IP is automatically discovered. Path can be passed optionally (e.g. rtsp://127.0.0.1:554/filename).

New in QSTranscode 1.0.1.8 (Oct 14, 2013)

  • Update to FFmpeg 2.0.1

New in QSTranscode 1.0.1.7 (Sep 30, 2013)

  • Add QSTranscodeGUI
  • Redirect ffmpeg logging to standard output
  • Expose ffmpeg logging level
  • Use bitrate instead of framesize when selecting preferred audio track

New in QSTranscode 1.0.1.6 (Aug 30, 2013)

  • Add maxBitRate (-mb) option
  • Treat VC-1 in M2TS differently than other formats when looking for video header information

New in QSTranscode 1.0.1.5 (Aug 22, 2013)

  • Support 0 index BDMV

New in QSTranscode 1.0.1.4 (Jul 23, 2013)

  • Round framerate up to nearest whole number when calculating goppicsize
  • Enable MBBRC by default

New in QSTranscode 1.0.1.3 (Jul 22, 2013)

  • Add goprefdist & goppicsize settings
  • Set default goppicsize to 5x framerate + 1
  • Set default goprefdist to 4

New in QSTranscode 1.0.1.2 (Jul 22, 2013)

  • Expose trellis setting
  • Allow TU 2,3,5,6
  • Expose MBBRC & ExtBRC toggles

New in QSTranscode 1.0.1.1 (Jul 10, 2013)

  • Don't pass a "window" during device initialization
  • Add Look Ahead support

New in QSTranscode 1.0.1.0 (Jul 10, 2013)

  • Enable DI for videos who's framerate indicates interlaced video but the header indicates progressive

New in QSTranscode 1.0.0.9 (Jul 10, 2013)

  • Add benchmark mode
  • Fix an issue where native audio stream copies would error out in some containers
  • Configure MP3 encoder to use AV_SAMPLE_FMT_FLTP instead of AV_SAMPLE_FMT_S16
  • Add QP/QPI/QPP/QPB cmdline arguments for CQP encoding. Do not use QP & QPI/QPP/QPB at the same time.
  • Fix audio transcoding targeting planer formats (MP3/AC3)

New in QSTranscode 1.0.0.8 (May 27, 2013)

  • Check video codec profile for HW support
  • Decode video codecs that are unsupported by MSDK with FFMPEG
  • Explicit DX11 support

New in QSTranscode 1.0.0.7 (May 27, 2013)

  • 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

New in QSTranscode 1.0.0.6 (May 27, 2013)

  • 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)

New in QSTranscode 1.0.0.5 (May 27, 2013)

  • 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

New in QSTranscode 1.0.0.4 (May 27, 2013)

  • Fix an issue with non-folder transcoding

New in QSTranscode 1.0.0.3 (May 27, 2013)

  • Add BDMV support. Pass the path to the BDMV folder e.g. -i "e:\bds\some movie\bdmv"
  • Add -rc arg to select rate control method

New in QSTranscode 1.0.0.2 (May 27, 2013)

  • Better support for files without audio
  • Add VIDEO_TS support. Pass the path to the VIDEO_TS folder e.g. -i "e:\dvds\some movie\VIDEO_TS"
  • Disable MFX_EXTBUFF_VPP_PROCAMP

New in QSTranscode 1.0.0.1 (May 27, 2013)

  • 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