Skip to content

Latest commit

 

History

History
147 lines (88 loc) · 7.93 KB

README.e.md

File metadata and controls

147 lines (88 loc) · 7.93 KB

{{toc 5}}

{{.Name}} - ffmpeg convert wrapper tool

Latest Update(s)

Release v1.15.0

Add a more tolerable transpose approach.

For all transpose features, check out https://github.com/suntong/ffcvt/wiki/Tips:-To-transpose-song's-key

Implemented on 2024-02-08, dedicated to 龙年春节.

Release v1.13~1.14

Skipped.

Release v1.12.0

Now able to have specific CRF environment variable for libx26? types:

  • libx264: FFCVT_CRF4
  • libx265: FFCVT_CRF5

Release v1.11.1

Now able to restrict CPU usage by limiting max conversions done in each run.

Release v1.10.0

Now able to

  • change the key signature of a song. Details in #30.
  • add a karaoke audio track to the MTV videos. Details in #31.

Release v1.9.0

  • Release v1.9.0
    • ffcvt -version now checks/outputs dependent program versions too
    • now finished percentage are calculated from file size
  • Release v1.8.1, enable parallel execution

Release v1.8.0

  • Now able to define your own defaults. Just make a copy of ffcvt.json and customize it to your heart's content, then use the -cfg option to point to it. Better yet, set FFCVT_CFG environment variable and forget all about it afterwards.
    • This means that ffcvt is now not only limited to its own predefined transcoding sets, but you can also define your own transcoding rules and names and then fully enjoy its advanced addon assistants.
    • BTW, If you have a good set, don't forget to send in a PR so that everybody can also benefit from it.
  • Now the subtitles, nfo, html or any files in the source directory will be duplicated into the output (work) directory, first by hard-link and if it fails due to cross storage devices, a copy will be used instead.
  • And when creating par2 checksum/repair files, all files in the output (work) directory will be covered.

Release v1.7.5

  • Now able to speed up playback speed (-Speed). Details in #22
  • Also have added a copy target type that can speed up the Seg (split video) operation (v1.7.4). Details in #21

Release v1.7.3

  • Now able to split video into multiple segments (-S,Seg) by the given time. Details in #16

Release v1.7.2

Release v1.7.1

Added option -C,Cut which allows cutting multiple segments.

For further details, check out the wiki https://git.io/JuK0c, in which the source file of

Nice_scenic_videos_from_dashcam_With_Evening_sunset_view.mp4

is cut-short into

Nice_scenic_videos_from_dashcam_With_Evening_sunset_view_cut.mp4

Release v1.7.0

Added wx type for weixin.

Convert to video that is recognizable and playable by weixin/wechat, by using the -t wx option as the convertion type. Here is a converted sample:

FloatingHeliumBalloonInMovingCar.mp4

(credit here)

For further details, check out the wiki https://git.io/JuK0q

Introduction

  • The next-generation codec like High Efficiency Video codec (HEVC), H.265 or VP9 can produce videos visually comparable to H.264's result, but in about half the file size.
  • Meanwhile the Opus audio codec is becoming the best thing ever for compressing audio -- A 64K Opus audio stream is comparable to mp3 files of 128K to 256K bandwidth.
  • Such fantastic high efficiency audio/video codec/encoding capability has long been available in ffmpeg, but fewer people know it or use it, partly because the ffmpeg command line is not that simple for every one.
  • The ffcvt is designed to take the burden from normal Joe -- All you need to do to encode a video is to give one parameter to ffcvt, i.e., the path and file name of the video to be encoded, and ffcvt will take care of the rest, using the recommended values for both audio/video encoding to properly encode it for you.
  • It can't be more simpler than that. However, beneath the simple surface, ffcvt is versatile and powerful enough to allow you to touch every corner of audio/video encoding. There is a huge list of environment variables (or command-line parameters) which will allow you tweak the encoding methods and parameters to exactly what you prefer instead.
  • Moreover, to encode a directory full of video files, including under its sub-directories, you need just to give ffcvt one single parameter, the directory location, and ffcvt will go ahead and encode all video files under that directory, including all its sub-directories as well.

Quick Usage

There is a quick usage help that comes with ffcvt, produced when it is invoked without any parameters:

$ ffcvt -version

$ {{shell "ffcvt -version"}}

$ {{exec "ffcvt" | color "sh"}}

Environment Variables

For each ffcvt command line parameter, there is a environment variable corresponding to it. For example you can use export FFCVT_FFMPEG=avconv to use avconv instead of ffmpeg (Don't, I use it for my CommandLineArgs to develop/test ffcvt without invoking ffmpeg each time).

Encoding Help

The detailed guide to choose/provide proper parameters to ffcvt have been moved to wiki. For example,

Please check them out in the wiki, and for other documents like "Most used ffmpeg options", "How to crop a video", etc.

Tools Choices

As suggested before, don't use avconv, use ffmpeg instead (the avconv fork was more for political reasons. I personally believe ffmpeg is technically superior although might not be politically).

As for video/movie play back, use mpv. It is a fork of mplayer2 and MPlayer, and is a true modern all-in-one movie player that can play ANYTHING, and one of the few movie players being actively developed all the time. Download link is in mpv.io, from which Ubuntu repo I get my Ubuntu ffmpeg package as well. If you are unsatisfied with mpv's simple user interface, check out https://wiki.archlinux.org/index.php/Mpv#Front_ends.