Skip to content

Releases: luziferius/av1transcoder

v0.4.2

11 Jun 09:54
95c2b04
Compare
Choose a tag to compare

Bug fixes

  • Fixed crash with newer ffmpeg versions, caused by ffprobe changing it’s XML output format. (See #4)

v0.4.1

30 Apr 09:31
dbc64af
Compare
Choose a tag to compare

Bug fixes

  • Fixed parser issue with custom ffmpeg arguments that contain nested quotation marks with spaces
  • Clarified wording in the --help output.

v0.4.0

04 Dec 13:20
51bc03c
Compare
Choose a tag to compare

Features

  • Write encoder parameters to the matroska container using a custom metadata tag.
    The full encoder settings string is written to the VIDEO_ENCODER_SETTINGS tag.
    This should make it easier to determine the used encoder parameters when
    looking at a file in the future.

Bug fixes

  • Fixed issue with deleting temporary files at the end of the encoding process. It now
    deletes the temporary directory as intended, when --keep-temp is not given.

v0.3.2

28 Nov 17:34
51ddbda
Compare
Choose a tag to compare
  • Prepare public release
  • Improved README, --help output.

v0.3.0

28 Nov 17:33
ceb1518
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release
  • New option --limit-encodes NUMBER. Only run up to NUMBER scene encodes in total. If the limit is hit, no new scene encodes will start and the program will exit. All scenes in all input files count towards this limit. Merging into the final output result will not be performed, if this option causes the scene list to be incomplete. For the sake of this option, the two encodes required for a Two-Pass encode of a scene count as one encode towards this limit.
  • New option --crop TOP BOTTOM LEFT RIGHT. Uses the ffmpeg crop filter to trim the given pixels off the video border.
    Can be given multiple times. If so, each input file gets it’s own crop parameters in the order both are given on the
    command line. If more input files are given, the last --crop parameters are used for all remaining input videos.
  • Sanitize user input for numbers. Options requiring positive numbers now check that no negative numbers are supplied.
    The Scene cut threshold now checks that the input is in the range (0, 1].
  • Updated the --help output
  • Updated the default encoder parameters. The default preset is now tuned for high quality SD encodes.

v0.2.0

28 Nov 17:31
9dd1df9
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release
  • Split first pass from second pass for two-pass encoding and use a different task scheduler for two-pass encodes.
    • Use the first-pass log size as simple metric to estimate
      second-pass runtime and schedule the second passes accordingly.
      Large logs indicate long and/or complex scenes that take long to encode.
    • Start encoding long running scenes first, which will result in better multicore usage at the end of the processing.
    • It avoids starting long scenes, like the credits, at the end of the processs, and therefore lessens the impact of a single, long encode delaying the whole process. With this scheduling approach, it is way more likely that the last running encodings will be encoding short and easy scenes and therefore having less overall delay.

v0.1.3

28 Nov 17:30
eae0584
Compare
Choose a tag to compare
v0.1.3 Pre-release
Pre-release
  • Fixed broken Two-pass log file moving.
  • Fixed skipping the first pass of two-pass encodes, if that is already finished.
  • Always overwrite aborted single-pass or second-pass encodes.

v0.1.2

28 Nov 17:30
03dad38
Compare
Choose a tag to compare
v0.1.2 Pre-release
Pre-release
  • Gracefully handle missing input files
  • Enable @-notation in the argument parser to load arguments from files
  • Move first pass encoder logs to the completed temporary directory, so that completed first passes can be skipped.

v0.1.1

28 Nov 17:29
5513504
Compare
Choose a tag to compare
v0.1.1 Pre-release
Pre-release
  • Replaced -2/--two-pass with -1/--single-pass. Two-Pass encoding is the new default.
  • Per default, use 8 concurrent encodes instead of 2
  • Removed tile usage from the default encoder parameters, due to possible frame curruptions
  • Removed threading support from the default encoder parameters,
    because multiple encoder instances scale more consistently.

v0.1.0

28 Nov 17:06
19ba2a1
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release
  • Implemented features:

    • Command line interface
    • Transcode Videos to AV1 using libaom-av1
    • Single-Pass and Two-Pass encoding mode (currently defaulting to Single-Pass)
    • Scene cut detection with customizable threshold
    • Scene length control by providing a lower bound to the individual scene length.
      Shorter detected scenes will be merged to improve encoding efficiency
    • Scene-parallel encoding using multiple ffmpeg instances
    • Concurrency control by a configurable upper limit of parallel instances
    • Deinterlacing support using the yadif filter.
    • Passing raw, custom encoder parameters to ffmpeg, both global ffmpeg options and encoder-specific options
    • Resumable encodes: Finished scenes are collected in a specific directory. If the encoding is aborted and
      restarted, already present data is skipped when the encoding process is restarted.
    • Customizable data directories
    • Customizable ffmpeg binary location and name
    • Integration with Cutelog for log display purposes
    • Dumping of parsed scenes for inspection purposes
    • Optional dumping of generated ffmpeg command lines for inspection purposes
  • Limitations and missing features:

    • The output video name is automatically generated and currently can’t be changed.
    • The output will always be muxed into a matroska container. Raw stream output or other containers are unsupported.
      Use mkvextract or the muxer of your choice to remux the output video.
    • Due to the output file handling, encoding multiple videos with names differing only in the extension
      (e.g. "video.mp4" and "video.avi") will cause a naming conflict and abort the encoding process
      in the final step, if central data storage is used (with --output-dir or --temp-dir).
      The encoding in this situation should be resumable, if the videos are processed individually.
    • If a central data storage is specified, (with --output-dir or --temp-dir),
      files with the same name but originating from different source directories will collide in the same way
      as in the point above.
    • A maximal scene length cannot be specified. This is planned, but the algorithm for this is not yet designed.
    • No GUI