Giter Site home page Giter Site logo

tricycle's Introduction

Tricycle

Tricycle is an open-source video transcoder for macOS and Windows. It takes the guesswork out of converting videos by using layman's terms and providing a reasonable default configuration. Tricycle is powered by other open-source projects such as FFmpeg, x264, and x265.

Tricycle Screenshot

Download

Latest Version (2.6.1)

Features

  • Reads/decodes most video and audio formats
  • Writes/encodes to the following formats
    • Container formats:
      • MP4
      • MKV
    • Video formats:
      • AVC (H.264)
      • HEVC (H.265)
    • Audio formats:
      • AAC
      • Dolby Digital (AC-3)
      • Dolby TrueHD (copy/passthru to MKV only)
      • DTS (copy/passthru only)
      • DTS Master Audio (copy/passthru to MKV only)
  • Supports 4K resolution and HDR (HDR10)
  • Tonemaps HDR to SDR
  • Scales video to standard resolutions
  • Detects and crops black bars
  • Crops to a selected aspect ratio
  • Reduces noise in video
  • Overlays subtitles (all or forced only)
  • Supports mutliple audio tracks in mono, stereo, 5.1 surround, or 7.1 surround (copy/passthru to MKV only)

System Requirements

macOS

  • macOS High Sierra (10.13) or later

Windows

  • Windows 7 or later (64-bit)
  • .NET Framework 4.6.1 or later

License

Tricycle is licensed under the GNU General Public License (GPL) Version 2. Please see the LICENSE file for more information.

Help

If you uncover a bug or have a feature request, please create an issue.

Contributing

Most contributions are welcome, but those not meeting the project's goals or standards may be rejected.

This project makes us of Git LFS for storing images and third-party executables. Please ensure that this is installed before cloning.

To begin, create a branch from master for the issue you are working on. Please use the following naming convention.

<feature|bugfix>/<issue-number>-<short-description>

If an issue does not exist for the improvement you would like to make, please create one. Once work is complete, create a pull request to have the branch merged into master.

tricycle's People

Contributors

kmcclive avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tricycle's Issues

Windows installer doesn't perform clean updates

The Windows installer seems to frequently produce bad installations, either the app won't start or changes will be missing from versions. The latter is likely caused by some files not getting updated.

Limit bitrate

As a user, I want to limit the average bitrate of a video so that it doesn't exceed my upload speed.

Tricycle closing when scanning files

Firstly, just wanted to say thank you for this tool! It has helped reduce my media library size considerably, and is making it viable to now keep more movies in 4K format than before.

Now to my problem. As the title suggests, having some issues when trying to convert some videos. Interestingly, not all, so I presume there is something about the file that Tricycle doesn't like, but can't tell what.

tricycle-2020-12-08.log

Attached is a log from one I know fails, so just ran it now to get the log file. I can provide more for different files if needed.
It doesn't have anything to do with size, as I have just ran some 120GB files through with no issues.

Running v2.4.3 on Windows 10 Pro, version 20H2, OS Build 19042.630. Using an i7-8700 with 32GB of RAM.

If you need any more information, please let me know.

Thanks in advance.

Text-based subtitles don't work

Steps to reproduce

  1. Select a source with text-based subtitles
  2. Select the text-based track for the Subtitles picker
  3. Run the job to completion

Actual result

No subtitles are seen when playing the video

Expected result

Subtitles are seen when playing the video

Destination may default to source

There are cases where the destination file name may default to that of the source.

Steps to reproduce:

  1. Select an MKV as the source
  2. Verify that a new MP4 file is set as the default destination
  3. If necessary, change the destination directory to be the same as the source
  4. Select MKV for the container format

Actual Result:
The destination file name is now the same as the source.

Expected Result:
The destination file name uses the default MKV extension, but is different than the source.

Add de-interlacing support

As a user I want to de-interlace/decomb videos so that they have less-noticeable lines when playing them.

Manual cropping support

As a user, I want to manually specify the crop parameters for a movie so that black bars will be removed even when Tricycle doesn't detect them.

Just trying this out

I read your issue about the Windows msi installer not being so great so I extracted all the files from the msi and found 135 files and one "assets" folder. Is this correct to make your app run?? Most are system....dll files.

Can't transcode any file

A user is receiving the following error upon starting a transcode in Tricycle 2.4.2 on Windows. Multiple files were tried and none of them worked. It may be related to culture settings.

transcode error

The following log file was provided.

tricycle-2020-05-31.log

Unsupported Audio alert is cut off on Windows

The alert that is titled "Unsupported Audio" is getting cut off on Windows.

Steps to reproduce:

  1. Select a source with an HD audio track
  2. Select MKV for the container format
  3. Select the HD audio track and select the same format as the source track
  4. Select MP4 for the container format

Actual Result:
An alert is displayed, but the action buttons can't be seen.

Expected Result:
The full alert text is visible as well as all the buttons.

Add queue

As a user, I want to add multiple transcode jobs to a queue so that they all execute without intervention in between them.

Chroma subsampling: 4:2:0 (Type 2)

I noticed handbrake and now tricycle did not carry over the proper chroma subsampling carried in my file. Which is Chroma subsampling: 4:2:0 (Type 2)

I was trying to get a handle on if this would affect my encode, but I am still not sure. Here (Doom9) is a thread I was reading on it. Might only come into play when downsizing. Not sure though.

Add debug logging

As a user, I want Tricycle to output debug logs so that I can send them to a developer to troubleshoot an issue.

Remember last-used destination directory

As a user, I want Tricycle to remember the directory of the destination file I select so that it takes me fewer clicks to select a destination file in the same directory.

Not all language codes are supported

Some languages are being displayed with codes instead of their name.

Steps to reproduce:

  1. Select a source that contains either an audio or subtitle track with language code "fre".

Actual Result:
"fre" is displayed in the app.

Expected Result:
"French" is displayed in the app.

Generalize HDR Support

As a developer, I want the way that HDR is applied to videos to be independent of an encoder so that I can add other encoders without losing HDR support.

Currently, there are parameters that are set via x265 options, including HDR metadata and colorspace. Another mechanism should be used to set those so that other HEVC encoders can be added.

Follow OS-specific design conventions

As a user, I want Tricycle to look like it was built specifically for macOS and Windows so that it matches the other apps that I use.

A good example of this is Visual Studio. On Windows, build progress is displayed in a status bar at the bottom of the window. On macOS, it is displayed in a box at the top-middle of the window similar to Xcode and iTunes.

Feature Request: Debian-based Linux Support

Not sure how difficult to port to Debian-based Linux. Currently utilize Ubuntu for it's ability to utilize Intel Quick Sync. Trying to get Darling working at the moment and see if it would be able to handle Tricycle. Command line would be helpful in utilizing Tricycle in headless Debian-based setups.

Can't open any video file

I'm trying version 2.3.0 on Windows 10 64-bit English and I can't open any video file. I have tried several mp4 and mkv files.

Invalid Source
The selected file could not be opened.

Pattern-based Source Selection

As a user, I want to select the source using a pattern (wildcards/regex) so that I can transcode all files with names matching that pattern.

Anamorphic videos aren't scaled or cropped correctly

Steps to reproduce

  1. Select a source with anamorphic video
  2. Select a size to scale to
  3. Select an aspect ratio to crop to
  4. Transcode the video

Actual result

The arguments passed to FFmpeg do not match the anamorphic dimensions of the source and the video dimensions look disproportionate when played.

Expected result

The arguments passed to FFmpeg match the anamorphic dimensions of the source and the video dimensions look proportionate when played.

Converted Video Unplayable on Mac

I've tried converting a few MKV video files (4k, HDR) to h.265/HVEC mp4. The resulting m4v files won't open on a Mac. I'm not sure if this is an issue or if I'm missing something.

Create About screen for Windows

As a Windows user, I want to view information about the app, i.e. version, copyright, without having to view the properties of the executable in File Explorer.

NVENC Hardware Acceleration

As a user, I want to use Nvidia's technology to accelerate transcodes so that jobs take much less time to complete.

Update app icon for Big Sur

Big Sur uses a convention for its app icons similar to iOS, a square with rounded edges. The Tricycle icon should be updated to follow this convention.

Logging doesn't indicate stdout vs stderr

Version 2.4.0 added trace logging, but the log doesn't indicate which stream an external process writes to. This makes it difficult to troubleshoot issues.

Steps to reproduce:

  1. If necessary, enable trace logging and restart
  2. Open a file
  3. Verify that messages are logged

Actual Result:
The log does not indicate which stream messages were written to.

Expected result:
The log does indicate which stream messages were written to.

Add preview(s)

As a user, I want to preview the output of a transcode so that I don't have to wait for the entire movie to complete before finding out what it will look like.

Sign the app

When opening the published version of the app, Gatekeeper gives warnings and requires users to jump through hoops to open it. The app should be signed to prevent this.

Read config from user directory

As a user, I want the Tricycle config to be read from a user directory so that I don't need admin permissions to modify it.

Black bars aren't being detected in some movies

I had a movie with black bars, but it wasn't detected by Tricycle. It turns out that the bars are not as dark as most movies. For this 10-bit movie, it required a black-level of 120 (30 for 8-bit) to be detected by FFmpeg.

Add templates

As a user, I want to save my transcode settings to a template so that I can apply them to another job without having to set them individually.

Forced Only switch enabled during transcode

The "Forced Only" switch is not getting disabled when a job starts.

  1. Select a video with subtitles as the source
  2. Select a subtitle track
  3. Click the start button

Actual Result: The "Forced Only" switch is still enabled.
Expected Result: The "Forced Only" switch is disabled.

Create configuration screen

As a user, I want to configure Tricycle within the app so that I don't have to use a text editor to modify the configuration.

Investigate how to handle wide color gamut videos without HDR metadata

As a user, I want Tricycle to support tone-mapping of videos with a wide color gamut even if they don't have HDR metadata so that I can play the videos on devices that don't support wide color gamut.

It would be good to notify the user that, while Tricycle can still transcode the video, it won't likely trigger HDR mode on most displays.

Display consistent alerts

Currently, the Windows app displays three different styles of alerts: Xamarin Forms Alert, MessageBox, and a custom InputWindow. It would be good to make these more consistent.

Feature request: Pass-through/copy source subtitles

It would be great if we could include source subtitles in the output without using the overlay function. Currently this requires a remux of the Tricycle output and source file after the transcode job has finished.

thanks!

Give streams consistent names

As a user, I want the streams in files created by Tricycle to have names that match their content so that I don't get confused when there is a stream named "Surround 5.1" that is actually stereo audio, for example.

Incomplete files aren't always deleted on Windows

There seems to be a race condition that is preventing incomplete files from being deleted when a job is stopped. I haven't noticed it on macOS, only Windows.

Steps to reproduce

  1. Enable deleting of incomplete files
  2. Start a transcode job
  3. Stop the job

Actual result

The destination is not deleted.

Expected result

The destination is deleted.

Port the app to Windows

As a user, I want to use Tricycle on Windows so that I don't have to buy a Mac to be able to use the app.

Unexpected defaults for manual cropping

The default values used to populate the manual crop controls should be based on the black bars that are detected. However, it was found that this is not working properly with anamorphic video.

Steps to reproduce:

  1. Select a source with anamorphic video and horizontal black bars
  2. Select Manual for Crop

Actual Result:
Either the Left or Right field has a value.

Expected Result:
Only the Top and Bottom fields have a value.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.