Bash tool handling media files, DVD, audio CD, and VGM. Mainly with ffmpeg. In batch or single file.
Source media files, supported extension:
- Video in *.mkv *.m4v *.m2ts *.avi *.ts *.mts *.mpg *.flv *.mp4 *.mov *.wmv *.3gp *.vob *.mpeg *.vp9 *.webm *.ogv *.bik
- Audio in *.ac3 *.ape *.wma *.m4a *.mp3 *.flac *.ogg *.mpc *.ac3 *.aac *.spx *.wav *.dsf *.aud *.tta *.opus *.mod *.mpg *.wv
- Subtitle in *.srt *.ssa *.sub *.sup
- VGM files (see documentation)
ffmpeg mkvtoolnix mediainfo abcde sox ogmtools ogmrip lsdvd dvdbackup shntool cuetools uchardet coreutils findutils bc libao bchunk setcd tesseract-ocr tesseract-ocr-all wget
cd && wget https://github.com/Jocker666z/ffmes/archive/master.zip
unzip master.zip && mv ffmes-master ffmes && rm master.zip
cd ffmes && chmod a+x ffmes.sh
echo "alias ffmes=\"bash ~/ffmes/ffmes.sh\"" >> ~/.bash_aliases && source ~/.bash_aliases
(alias optional but recommended & handy)- Nemo action:
nano ~/.local/share/nemo/actions/ffmes.nemo_action
[Nemo Action]
Active=true
Name=ffmes %N
Comment=ffmes %N
Exec=gnome-terminal -- bash -c "~/ffmes/ffmes.sh -i '%F'; bash"
Selection=any
Extensions=any;
Options:
- without option treat current directory
- -i|--input : treat one file
- -i|--input : treat in batch a specific directory
- -h|--help : display help
- -j|--videojobs Number of video encoding in same time (Default: 2)
- -s|--select : preselect option
- -v|--verbose : display ffmpeg log level as info
- -vv|--fullverbose : display ffmpeg log level as debug Exemples:
- if no alias:
bash ~/ffmes/ffmes.sh
with audio/video in same directory of scriptbash ~/ffmes/ffmes.sh -i DIRECTORY-TO.EDIT
for directorybash ~/ffmes/ffmes.sh -i FILE-TO.EDIT
for single video or audio
- elif with alias (recommended):
ffmes
with audio/video in directoryffmes -i DIRECTORY-TO.EDIT
for directoryffmes -i FILE-TO.EDIT
for single video or audioffmes -vv -i FILE-TO.EDIT
for single video or audio, with ffmpeg in log level as debugffmes -s 1 -i FILE-TO.EDIT
for single video, select option 1 by-passing the main menu
ffmes is tested, under Debian stable and unstable almost every day. If you encounter problems or have proposals, I am open to discussion.
All come from open source programs.
- binmerge - https://github.com/putnam/binmerge
- espctag - https://sourceforge.net/projects/espctag/
- gbsinfo - https://github.com/mmitch/gbsplay
- gbsplay - https://github.com/mmitch/gbsplay
- info68 - https://sourceforge.net/projects/sc68/
- opustags - https://github.com/fmang/opustags
- sc68 - https://sourceforge.net/projects/sc68/
- vgm2wav - https://github.com/ValleyBell/libvgm
- vgmstream_cli - https://github.com/losnoco/vgmstream
- vgmtag - https://github.com/vgmrips/vgmtools
- zxtune - https://zxtune.bitbucket.io/
- Video:
- 0, DVD rip (vob, ISO, or disc)
- 1, video encoding, full custom options
- 2, copy stream to mkv with map option
- Video tools:
- 10, view detailed video file informations
- 11, add audio stream or subtitle in video file
- 12, concatenate video files
- 13, extract stream(s) of video file
- 14, cut video file
- 15, add audio stream with night normalization
- 16, split mkv by chapter
- 17, change color of DVD subtitle (idx/sub)
- 18, convert DVD subtitle (idx/sub) to srt
- Audio :
- 20, CD rip
- 21, VGM Rip to flac (Linux x86_64 only)
- 22, CUE Splitter to flac
- 23, audio to wav
- 24, audio to flac
- 25, audio to mp3
- 26, audio to ogg
- 27, audio to opus
- Audio tools :
- 30, tag editor
- 31, view detailed audio file informations
- 32, generate png image of audio spectrum
- 33, concatenate audio files
- 34, cut audio file
- Rip DVD, include ISO and VIDEO_TS VOB
- Chapters integration
- Fix timestamp and display ratio to mkv file (stream copy)
- launch option 1 (optional)
- Video:
- Stream copy or encoding
- Encoding options:
- crop video
- rotate video
- HDR to SDR
- change resolution
- deinterlace
- fix frame rate to 24fps
- codecs:
- x264: profile, tune, preset & bitrate (crf & cbr)
- x265: profile, tune, HDR, preset & bitrate (crf & cbr)
- mpeg4 (xvid): bitrate (qscale & cbr)
- Audio:
- Stream copy or encoding
- Encoding options (apply to all streams):
- codecs:
- ac3 (ac3): bitrate (vbr & cbr)
- opus (libopus): bitrate (vbr)
- vorbis (libvorbis): bitrate (vbr & cbr)
- flac (libflac): compression
- Channels layout for ac3, flac, vorbis: 1.0, 2.0, 2.1, 3.0, 3.1, 4.0, 4.1, 5.1
- Channels layout for opus: 1.0, 2.0, 3.0, 5.1
- codecs:
- Container selection
- mkv & mp4 support
- Map streams selection
Copy stream in mkv file, with streams selection if source have more than 2 streams.
From inplace matroska video (with audio), add stream with night mode normalization (the amplitude of sound between heavy and weak sounds will decrease). The new stream is in opus, stereo, 320kb.
Cut one matroska video per chapter, mkvtoolnix package must be installed.
You must run the option in a directory containing one or more pairs of idx/sub files with the same filename.
Colors palette available:
- white font / black border
- black font / white border
- yellow font / black border
- yellow font / white border
You must have installed tesseract-ocr with your language support, but also ogmrip package (includes subp2tiff and subptools binaries).
Language supported: english, french, deutsch, spanish, portuguese, italian, japanese, chinese simplified, arabic, korean, russian.
Tesseract engine available:
- By recognizing character patterns, fast but not reliable
- By neural net (LSTM), slow but reliable (default)
This function limited to Linux x86_64, it embeds binaries compiled for this platform, so it remains (and will) unstable as a whole. Encoding automated apply 0db peak normalization, remove silence, and false stereo files detection.
Files supported :
- 3DO : aif
- Amiga/Atari: mod, snd, sndh
- Fujitsu FM-7, FM Towns: s98
- Microsoft Xbox: aix, mus, sfd, xwav
- Microsoft Xbox 360: wem
- NEC PC-6001, PC-6601, PC-8801, PC-9801: s98
- NEC PC-Engine/TurboGrafx-16: hes
- Nintendo 3DS: mus, bcstm, wem, bcwav, fsb
- Nintendo DS: adx, mini2sf
- Nintendo GB & GBC: gbs
- Nintendo GBA: minigsf
- Nintendo GameCube: adx, cfn, dsp, hps, adp, thp, mus
- Nintendo N64: miniusf
- Nintendo NES: nsf
- Nintendo SNES: spc
- Nintendo Switch: bfstm, bfwav, ktss
- Nintendo Wii: mus
- Sega Mark III/Master System: vgm, vgz
- Sega Mega Drive/Genesis: vgm, vgz
- Sega Saturn: minissf, ssf
- Sega Dreamcast: dsf, spsd
- Sharp X1 : s98
- Sony Playstation: psf, minipsf, xa, vag
- Sony Playstation 2: ads, adpcm, genh, psf2, int, minipsf2, ss2, vag, vpk, sng, vgs
- Sony Playstation 3: aa3, adx, at3, genh, msf, mtaf, sgd, ss2, vag, xvag, wem
- Sony Playstation 4: wem
- Sony PSP: at3
- Panasonic 3DO: aifc, str
- PC: mod, voc, fsb
- Various machines: vgm, vgz, adx, rak, tak, dat, eam, at3, raw, wem
- Various machines CD-DA: bin, bin/cue, iso/cue
- Encoding options:
- Quality :
- signed 16-bit little-endian
- signed 24-bit little-endian
- signed 32-bit little-endian
- signed 8-bit
- unsigned 8-bit
- Channels layout 1.0 to 5.1
- False stereo files detection
- 0db peak normalization
- Silence detect & remove, at start & end (only wav & flac source)
- After encoding, option for remove all source files, if not for remove created files
- Quality :
- Encoding options:
- Quality :
- full custom option
- 24 bit support
- Channels layout 1.0 to 5.1
- False stereo files detection
- 0db peak normalization
- Silence detect & remove, at start & end (only wav & flac source)
- After encoding, option for remove all source files, if not for remove created files
- Quality :
- Encoding options:
- Bitrate
- vbr, 64kb to 510kb (selectable options).
- OR mode "accurate auto adapted bitrate from source", particularly useful for processing very large batches of files.
- Channels layout 1.0, 2.0, 3.0, 5.1
- False stereo files detection
- 0db peak normalization
- Silence detect & remove, at start & end (only wav & flac source)
- After encoding, option for remove all source files, if not for remove created files
- Bitrate
Options:
- Change or add tag disc number
- Rename files in "Track - Title" (add track number if not present)
- Change or add tag track, by alphabetic sorting, to use if no file has this tag
- Change or add tag album
- Change or add tag disc number
- Change or add tag artist
- Change or add tag date
- Change tag title for filename
- Change tag title for untitled
- Remove N character at begin of tag title (9 characters at once).
- Remove N character at end of tag title (9 characters at once). Restriction:
- Max depth directory 1
- Asian character not supported (display in degrading mode)
- NVENC (default=1)
- Description: Number of video encoding in same time, the countdown starts at 0 (0=1;1=2...)
- ExtractCover (default=0)
- Description: action performed during encoding
- 0=extract cover from source and remove in output
- 1=keep cover from source in output (not compatible with opus)
- empty=remove cover in output
- RemoveM3U (default=1)
- Description: action performed after encoding at "Remove source audio?" question
- 0=no remove
- 1=remove
- rename bug with mv and CIFS mount: add
cache=loose
in your mount option