Projects
Multimedia
h264enc
h264enc.spec
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File h264enc.spec of Package h264enc (Revision 387)
Currently displaying revision
387
,
Show latest
# norootforbuild Name: h264enc Version: 10.4.2 Release: 1 License: GPL-2.0+ Group: Productivity/Multimedia/Video/Editors and Convertors Summary: An advanced CLI shell script for MEncoder URL: http://h264enc.sourceforge.net/ Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch Requires: findutils gpac bc gawk lsdvd nano ogmtools vorbis-tools opus-tools flac aften dcaenc mailx faac MPlayer mkvtoolnix pv x264 %description h264enc is an advanced and powerful interactive menu-driven shell script written for the GNU/Linux operating system which can help you to encode a DVD, a video file, a directory with video files or a (S)VCD to the H.264/MPEG-4 Part 10/AVC video format using the MEncoder encoder from the MPlayer project and the libx264 library. It supports muxing the final encode from AVI to MKV, from AVI to OGM, from AVI to TS and from AVI to the MP4 container. %prep %setup -q -n %{name}-%{version} %build %install %__mkdir -p %{buildroot}/%{_docdir}/%{name}/matrices # binary %__install -D -m 755 %{name} %{buildroot}/%{_bindir}/%{name} # man gzip -9 man/%{name}.1 %__install -D -m 644 man/%{name}.1.gz %{buildroot}/%{_mandir}/man1/%{name}.1.gz # doc %__install -m 644 doc/* %{buildroot}/%{_docdir}/%{name} %__install -m 644 matrices/* %{buildroot}/%{_docdir}/%{name}/matrices %clean rm -rf "%{buildroot}" %files %defattr(-,root,root) %{_bindir}/%{name} %{_mandir}/man1/%{name}.1.gz %{_docdir}/%{name} %changelog * Sun Sep 06 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.4.2 * Increased the default audio bitrate/quality value for Vorbis audio * Added mov file extention to the supported formats for chapter dumps * New ASCII art banner * Updated the man page * Tue Jun 23 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.4.1 * Modified the mail func for dir batch encodes to report the input directory instead of the last encoded file from it * Get rid of some commented out code which is no longer used * The -a52drc option only has an effect if input audio is AC-3. Since we currently don't store the audio codec detected into a usable var, disable this option for the time being. * Increased the detault audio bitrate for AAC from 128 to 192kbps * Sun May 03 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.4.0 * Accept relative paths for the output file * Do a second crop detection run in case the first try fails * Sun May 03 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.3.9 * Add a check for x264 in the sanity test * Fix a typo in the x264params var for multi-pass encoding * Thu Apr 30 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.3.8 * Fixed an issue in the EDL code where tab completion wasn't working due to missing -e option to read * Sat Apr 04 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.3.7 * Added support for EDL list files. Updates the config version to 35. By default, EDL is disabled as I don't think many people know what it is or how to make such files, so you have to enable it in the config file. Requested by Shibby7 * Mon Mar 16 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.3.6 * Revert the previous change to crop detect for files as it misdetects too often * Wed Mar 11 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.3.5 * Support mono and tile format frame packing. Requires latest x264 * Improved crop detection for files * Fri Jan 23 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.3.4 * Added support for setting a default software scaler in the config file * Ask for color primaries/transfers/matrics when using any preset, not just the Blu-ray ones * Tue Jan 20 2015 Grozdan Nikolov <neutrino8@gmail.com> 10.3.3 * Improved original resolution detection. Patch by Markus Grunwald * Update copyright dates * Thu Oct 02 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.3.2 * Add the $cache var to a few more places in the audio code * Reorder the audio codec conditionals in the case statements for better readability * When using external audio encoders, we currently only check if the encoder has produced a file. Make it a bit more reliable and check if the audio file is at least 20 KiB in size as most encoders that output a file but error out, produce files less than 20 KiB. A more reliable method would be to check the return code of the background encoder process itself with $! to get its PID and using wait $PID; RET=$? to capture the signal, but this will result in a hacky way of doing it. I do not rule it out for the future * Tue Sep 30 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.3.1 * Fix a syntax error in the ratio_and_pixels_func() due to missing var * Mon Sep 29 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.3.0 * Get rid of the $RATIO var in the ratio_and_pixels_func() function * Support disabling of all video filters at once through the config file * Support disabling of cropping and subtitles * Support disabling of all audio filters at once * Support disabling of asking for DVD/BD angles and chapters encode * Sat Sep 27 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.9 * Colorize the output of detected subtitles and DVD/VCD titles * Merge the two case statements of the ratio_and_pixels_func() function * All audio encoders we currently use support a max of 6 audio channels. Check the detected audio channels amount and warn per track if we detect more than 6 * Minor default filters values tuning * Fri Sep 26 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.8 * Get rid of the get_resolution_func() and audio_stream_copy_func() functions * Detecting Blu-ray resolution can be sometimes problematic when using -vo null -ao null. Switch to using -nosound instead of -ao null * Check the value set, if any, in the DEFAULT_VID_CRFQP variable in the config file and restrict the maximum to 51 * Add the $cache var for Blu-rays to the audio_resample_func() function and to the audio detection code for stream copy * For audio copy, move the audio detection into its own audio_copy_func() function. It makes it possible to correctly copy TrueHD audio regardless of the preset used, except for restricted presets that do not support audio copy. DTS HD MA is not supported yet as there's no way detecting it due to no decode support in libavcodec * Remove the -nocache option from the MPOPTS var * Cosmetics * Thu Sep 25 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.7 * Fix incorrect Aspect Ratio (AR) and Pixel Aspect Ratio (PAR) calculations for cropped resolutions * Do not run the get_resolution_func() function if we do cropping as it's needless * Calculate and display the AR and PAR when we do scaling * Wed Sep 17 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.6 * Fix crop detection for Blu-ray input * Tue Sep 16 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.5 * Set the -cache option needed for BD input in a single variable inside the code for BD input. Reduces detection time of resolution/audio codecs if input is not BD since the -cache option won't be used for such inputs * Make some words uppercase in the crop function to ease the focus on them * Reduced some dumplication by placing the chapters examples text into its own chapters_example_func() function * Mon Sep 15 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.4 * Fix Blu-ray input: -demuxer lavf is used by default for BD input as it provides extra info for audio detection. The problem is that -demuxer lavf forces MPlayer to read the whole(!) BD even when -frames 0 or 1 is used as option. This fix works around the problem by using the -cache option which seems to make -demuxer lavf behave as it should. Thanks to Andy Furnis on the MPlayer mailing list for providing the workaround * Sun Sep 14 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.3 * Add back checking for aften in the sanity check (-sc) option * Support disabling of MKV global tags. Bumps up the config file version to 32 * Use -frames 0 to workaround possible problems when detecting audio bitrates * Sun Aug 17 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.2 * Merge the eac3 and truehd part in the case statement as they're identical * Rename MP3FLOAT as reported by MPlayer to MP3 and EAC3 to E-AC-3 * Since we now set -nosound when copying a TrueHD track, it is no longer necessary to modify the text files for encoding, so remove the sed part * Fri Aug 15 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.1 * Support copying Dolby TrueHD audio into the MKV container * When detecting audio, change the TRUEHD reported by MPlayer to Dolby TrueHD * Fri Jul 04 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.2.0 * We currently try to auto-detect resolutions and fps in order to set the fake interlaced option and color prims/transfers/matrices when using the Blu-ray/AVCHD presets. The problem is that this auto-detection cannot be made very reliable and there's a high chance it will misdetect something. Make it simple instead and ask the user if to set the prims and/or fake interlaced options * Tune the Blu-ray/AVCHD high-quality presets for better quality * Both the aften and lavc encoders for AC-3 audio share the same bitrate code. Move it out of the encoder functions to a new ac3_bitrate_func() function to reduce some duplication * Removed some commented out code * In addition to reporting file sizes in MiB after encoding finishes, also report them in GiB * Wed Jul 02 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.9 * Add -noskip to where -mc 0 is used * Document the exit values used by the exit_func() function * Made the sed syntax consistent * Currently, we calculate the ratio and pixels in two places. One for when we don't scale and one for when we scale. Merge the code into the ratio_and_pixels_func() function to reduce some duplication * When printing info on files/bd, increase the -channels to 8 * Tune the higher quality presets and the anime ones by tweaking the adaptive quants, psy and inloop deblocker for better quality * Bugfix: in case we skip the audio channels filter when the provided channels is higher than 6, the array var audchannels was not reset * Tue Jul 01 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.8 * Fix syntax error in the ratio_and_pixels_func() function * Mon Jun 30 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.7 * Renamed the variable priority_level to nicelevel * Be more clear about the language code the user may use by mentioning that it's used for tagging * Be more clear on the channels filter by stating it is very basic and it will create empty channels in case the output channels are higher than the input ones * Add a 0 to the counter_func() function * mkvmerge version 7.0.0 and higher automatically adds statistics tags to the created file. Offer an option in the config file to disable this. Updates the config file version to 31 * Add a note to the skeleton presets.cfg file that one must start the params with a : (colon) * Sun Jun 29 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.6 * Add -mc 0, after some testing, for when encoding to E-AC-3 audio * A lot of the supported audio codecs do not support more than 6 channels so limit the channels to a maximum of 6 * If aften is missing and user has selected it as encoder to use, fall back to the lavc encoder instead of exiting * Wed Jun 25 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.5 * Updated the info on audio codecs supported by containers * Updated the set_audio_codec_func() function * Set the default IVTC filter to filmdint * Accept floating point values for CRF/QP ratecontrol in the config file * Tue Jun 24 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.4 * Removed -mc 0 when encoding to E-AC-3 audio. It is not needed after some tests and A/V sync will be better in some cases * Use a case statement instead of an if conditional when checking if audio encoder is fkdaac or dcaenc in order to insert the format filter * Encode to AAC through MEncoder instead of using faac directly * Renamed the aac_audio_func() function to faac_audio_func(). Also renamed the $MENCIN var to $MENCINPUT * Mon Jun 23 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.3 * Set the DRC profile for Aften to none * Allow the volume filter to be used even if the volnorm one is used * Added support for setting the DRC when using lavc for AC-3 * Added support for encoding to E-AC-3 audio through lavc * Fri Jun 20 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.2 * Fix a possible problem when detecting audio tracks when input is file or blu-ray. We only grep for the generic word 'audio' which could result in also printing lines that are not audio tracks but somehow carry the 'audio' word in their tags. Fix it by using 'awk' before 'grep' to only print the fourth column where lavf reports what type of track it is * Set default DTS bitrate to 755 kbps. Also check if we don't exceed the highest legal bitrate of 1509 kbps * Due to a bug in the dcaenc encoder, floating-point WAV files get wrongly interpreted as 32-bit integer ones. Work around this by adding the format=s16le filter * The 1536 kbps bitrate reported by MPlayer on some DTS files is technically 1509 kbps, if we have to be accurate. Account for this by substracting 27 kbps from the reported bitrate. Do the same for the reported 768 kbps bitrate which is actually 755 kbps * Report the kHz in addition to the Hz when displaying audio info for found tracks * When remuxing to MKV/MP4/OGM, instead of checking if a file is created to make a decision if it was successful or not, use return codes from the remuxing applications. Should be more reliable in telling the user if it really succeeded or not. Unfortunately tsMuxeR doesn't return anything so there's no other way than checking if there's an output file. * Lowered the scale factor in the calcbits() function from 3 to 2. Also use | instead of @ as delimiter * Tune a bit the subq values of the ani & anihq presets. Also turn on trellis on all decisions (trellis=2) for the anihq preset * Thu Jun 19 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.1 * Added support for the internal lavc AC-3 audio encoder. Now one can choose between the lavc encoder (default) and the aften encoder. The lavc encoder is set to default as aften has seen very little development in the past years and is not as good as the lavc one which is actively developed by the ffmpeg devs * Fine-tune the volume filter by setting it to 4 after some tests * Delete the file stored in the $AUDINFO variable * When storing the MKV global tags while operating in batch mode, test the variable $DIRTAGS for not being empty * Cosmetics: add a few echo's at specific places to separate the cmd lines in the batch file for better readability. Also add a comment block for the start of the MKV, MP4, TS and/or OGM muxing * Bugfix in the MKV/MP4 tags: do not add channel info when using MP3. If we add channel info, it could result in "MP3 5.1" being added to the audio tags, which is obviously wrong as MP3 only supports stereo and mono channels * Opus supports sampling rates from 8 kHz to 48 kHz. Support this in the resampling code * Wed Jun 18 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.1.0 * When scanning for audio tracks when input is file or blu-ray, rename DCA (as reported by lavf) to DTS to not confuse the user. Also rename AC3 to AC-3 for consistency * In case audio encoder is fdkaac, add to the MKV tags the audio format used (eg, Signed 16-bit little endian) * When dumping chapters from files, use the file extension .chaps for MKV. Also test to see if there's already a chapters file with the same name and rename it to <filename>.chaps.old * aac-enc name in the MKV tags is not very descriptive, so add (fdkaac) to it * Cosmetics * Tue Jun 17 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.9 * Bugfix: only call audio filters on subsequent tracks when running MPlayer to decode since for the first track we already pass these filters to MEncoder, thus if we also use them when running MPlayer we'll get a double effect * Add a ^ (caret) at the beginning of grep when trying to get the [lavf] text to make sure we only grep the correct instances * Set default CRF/QP value to 19 and for bitrate based encodes to 2000 kbps * For the volume audio filter, set the default value to 3 as 5 is a bit high * Mon Jun 16 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.8 * New method to detect and display audio info when input is file or blu-ray. In comparison to the previous basic method, the new one will display for each found audio track the codec, channels, language, bitrate and sample rate info. It does take slightly longer to detect in case there are many audio tracks, but it is more descriptive and accurate * Sun Jun 15 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.7 * Use an if instead of a case when dumping chapters from files * Also export chapter extraction commands to the batch file * Display mkvextract availability when using the sanity check option (-sc) * Add the path and name to the comment block of the batch file. Makes it easy to focus on the comment block to know for which file the commands are instead of needing to inspect the code itself to find out * Wed Jun 11 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.6 * Added support for dumping chapters info from MKV/MP4 input files This updates the config file version to 30 as mkvextract is needed * Made the audiofmt variable an array variable * Moved asking for sample encoding before asking to inspect or save the options to a file * Sat May 24 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.5 * Fixed the detect_fps_func() function for detecting the NTSC type * Lowered the spugauss (variance param for gauss subtitle scaling) from 0.7 to 0.4 as 0.7 does too much blurring in my opinion * Thu May 22 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.4 * Bugfix: $demuxer var was missing in the AUDCH array var which resulted in incorrect channel info being added to the tags when copying audio. DVD input was not affected by this bug, but file/dir/bd input was as they all use the $demuxer var * Sat Apr 26 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.3 * Removed unused $AUDFIFO variable * Small bugfix: audio language for metadata tagging wasn't added to the global tags for MKV when input is Blu-ray due to missing 'bd' param in the case statement * Wed Apr 23 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.2 * Bugfix: in case user chooses audio copy, the metadata info for tagging always defaulted to "Stereo". Fix this by running MPlayer to detect the proper amount of channels * Tue Apr 22 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.1 * Bugfix: wrong var used, $chanuse instead of $chandec, for setting the decode channels * Only call the video_subtitles_scale_func() function if the user actually provides an external sub for hardcoding * Thu Apr 17 2014 Grozdan Nikolov <neutrino8@gmail.com> 10.0.0 * Allow the video_subtitles_align_func() function for mks matroska subtitles * Display the warning message in red for when something goes wrong when importing/hardcoding subs. Do the same for when checking support for a sub format for MKV/MP4/OGM * Added support for subtitles for Blu-ray encodings. Note that only hardcoding of external sub or importing of external subs into the MKV/MP4/OGM containers is supported * Removed some duplication by placing the code for hardcoding an external sub or importing external subs into its own video_subtitles_option_func() function * Increased the rc_lookahead value for the ehq, uhq and ihq presets to 80, 90 and 100, respectively * When copying audio and using some of the portable device presets, also add the -mc 0 -msglevel demuxer=-1 options to MEncoder * More code optimizations and minor fixes * Wed Apr 16 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.8 * Use proper extensions when copying the audio as MP4Box has a problem with recognizing the .raw extension * Renamed the named pipe from audio.wav to audio.pipe. Also placed it in a variable to reduce some minor duplication * Added support for subtitle scaling for when hardcoding an external sub or hardcoding an embedded one. Requested by lib3rty1 from the the Doom9.org forum * Added --no-chapters option to mkvmerge for when encoding with neroAacEnc in order not to auto-copy chapters info from the container * Instead of defaulting to 0 kbps if we can't detect the audio bitrate when copying audio and needing to calculate the video bitrate for a target file size , ask the user to provide it in case he knows it or can figure it out * Set the default exponent strategy value for AC-3 to 16 * Placed frequently used MPlayer options into a single variable, $MPOPTS, in order not to write them over and over again when we need them. These options are not used everywhere as sometimes we need other specific ones when detecting something * Improved priority level checks for regular users if the PRIORITY variable is set in the config file * Bugfix: audio resampling was not possible for Blu-rays due to missing bd param in the case statement * Merge the Blu-ray output code with that of the file/vcd as it's identical * Some minor code optimizations * Tue Apr 15 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.7 * Allow the channels filter for the portable device presets * Reorder the audio filters positions * Placed the $MENCOPTS variable in front in MEncoder in order for it to not overwrite the options already set * For AC-3 audio, default to 384 kbps instead of 192 kbps and default to "Film Standard" as DRC profile * For MP3 audio, default to 192 kbps instead of 128 kbps when doing CBR encodes and to "standard" when using a preset * For NEROAAC and FDKAAC, default to 128 kbps instead of 96 kbps when using LC-AAC mode * Better wording in what the Output option does in the audio_channels_decode_func() function * Modification to the audio_codec_exit_func() function. Use this function also to exit in case of an unsupported audio codec. By using this function, some repeatability is removed * Fixed a bug in the PCM audio code for the calculation of video bitrate for a target file size. Variable $AUDIO_BITRATE should be an array variable instead of a normal one * Added support for Blu-ray angle encoding * Reduced some duplication by placing the message into a single variable when we exit in case an audio encoder is missing * MEncoder currently has issues with copying audio. Work it around by using -mc 0 -msglevel demuxer=-1 options which disable its automatic A/V sync. With this, MEncoder may report 0 or some large random number on some files for the audio but one can safely ignore it. Audio is still being copied * If the user chooses audio copy and selects to remux the encode to MKV, the global tags did not contain the audio encoder string. Fix this by adding "Unknown (Stream Copy)" since we don't know which program was used to encode the audio * In case we try to copy AAC audio from the input, we need to pass the correct format to MEncoder or it will error out. Thus, use -fafmttag 0x706d if we detect AAC * Fixed a bug where copying AAC audio as as subsequent track did not result in that track being added when remuxing to MP4 due to a missing ffaac param in the case statement * When doing video bitrate calculations for a target file size and copying the audio, try to better detect the audio bitrate. If we can't detect it or it's reported as 0 kbps, default to 0 kbps * Small improvements and cleanups here and there * Sun Apr 13 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.6 * Rewrote the audio_channels_decode_func() function. It is now possible to output channels different that the decoded channels amount. Note that this filter is very basic which means it will output silent channels if the decoded channels are less than the output channels * Added chanfilter variable to the aac_hev2_func() function * Support all supported channels in the PCM bitrate code for target file size calculation * Removed channels variable for MEncoder when copying audio for subsequent tracks as it has no effect * Display an informative message if the user has set a default audio codec in the config file. Also check if we support it or print an error message and exit * Updated the channels metadata info code due to changes in the audio_channels_decode_func() function * Modifications to the audio_filters_func() and audio_filters_var_func() functions * Some small code cleanups * Sat Apr 12 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.5 * Improved resolution detection for Blu-rays * Improved the nlq preset * Don't call the audio_channels_decode_func when copying the audio as audio is copied 1:1 thus we don't need to set any channels * Insert the channels filter in case the user wishes to have 4 or 5 audio channels when decoding higher or lower amount of channels * Various small code improvements * Sat Apr 12 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.4 * Cosmetics: add an echo between the total found titles for Blu-ray and the info about each title * Cosmetics: remove double-quotes in empty echo's * Display full seconds value for each found Blu-ray title * Small code optimization to Blu-ray chapters info. Use a single variable that holds the title we need to scan for chapters * Warn and fallback to 8 channels in case user provides more than 8 channels * Added support for PCM audio for subsequent audio tracks * Thu Apr 10 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.3 * Display the length in seconds and minutes for every found Blu-ray title * Implemented basic chapters encoding support for Blu-rays * Rewrote the code for subtitles imports for MKV/MP4/OGM * For DVDs/BDs, set default channels value to 6 when using other than copy for audio * Wed Apr 09 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.2 * Allow importing of mks (Matroska stream) subtitles into MKV. Such files are usually created when dumping subs with the GUI version of mkvmerge * Add -nosub when importing external subtitles into MKV/MP4/OGM to prevent auto-loading of any embedded subs in the input file * Use case statements to check the values of the $MAX_AMOUNT_AUD_TRACKS and $MAX_AMOUNT_SUBS variables * Auto-cropping was not possible when input is Blu-ray due to missing bd param in the case statement * Set default audio channels decode option to 6 when input is Blu-ray * Tue Apr 08 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.1 * Fixed not being able to calculate video bitrate for target file size when input is Blu-ray, due to missing $demuxer variable when calling MPlayer * Fixed DVD scanning in the -scan option * Support Blu-ray scanning in the -scan option * Display in the -sc option if MEncoder has Blu-ray support * Warn and exit if user chooses Blu-ray as input but MEncoder doesn't support it * Placed the $device and $vid variables after the $MPLAYEROPTS one in order for the custom MPlayer options not to possibly overwrite these variables * Modified the get_devices_func() function to allow files/folders as input so that a user can scan a DVD ISO or VIDEO_TS directory, not just discs * Fixed the colorprim code. $device and $vid variables were missing when calling MPlayer to get the resolution height * Mon Apr 07 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.9.0 * Initial, basic support for encoding from Blu-ray discs/ISOs/directories. Requires MPlayer to be compiled with libbluray. As libbluray doesn't support encrypted Blu-rays, it is not possible to encode such Blu-rays. Encryption must first be stripped before encoding with h264enc * Reduced some duplication in the audio code for the first track for MKV * Adjusted the vbv_maxrate and vbv_bufsize for the bd40 and bdhq40 presets to comply with the level limits * Sat Mar 29 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.8.7 * Merged the neroaac/fdkaac part of the MP4Box code as they're identical * Use a case statement to decide between --bluray and --avchd for tsMuxeR * A few more function renaming to carry the _func at the end * Fri Mar 28 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.8.6 * Fix a syntax error * Fri Mar 28 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.8.5 * Use a single variable for keyint for the Blu-ray/AVCHD presets. Reduces a bit of duplication * Reduced some duplication in the check_audio_codec_func() function by moving some of the error messages into a new audio_codec_exit_func() function * Allow muxing to TS when using neroAacEnc and/or FDKAAC in LC-AAC mode * Merged the NEROAAC/FDKAAC parts in the mkvmerge code as they're identical, thus we reduce a bit of duplication * Updated the man page * Mon Mar 24 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.8.4 * Add audio encoder info to the MKV global tags * Renamed the mencoder_opts() function to mencoder_opts_func() for consistency reasons * Fixed subtitles metadata info in the MKV global tags * Sun Mar 23 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.8.3 * Bugfix: If using nosound and dumping subsequent subs, the audio option for MEncoder was set to -ao null which is not recognized by MEncoder. Change it to -nosound instead * Sat Mar 22 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.8.2 * Bugfix: for subsequent audio tracks, when using neroAacEnc as encoder, the value of --aac-is-sbr used for HE-AAC by mkvmerge was set to 1:1. It should be 0:1 * Use the AACTYPE variable instead of the aacprof variable to check which type of AAC the user wants in the neroaac_audio_func() function * In VBR mode for audio encoders that support it, indicate which values result in better quality, ie based on the encoder a lower value results in higher quality or the reverse * Fri Mar 21 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.8.1 * Set the default crop rounding value to 4 for more accurate cropping * Initial support for the FDK AAC audio encoder. Requires latest git from https://github.com/mstorsjo/fdk-aac/commits/read-streamed-wav * Thu Feb 13 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.8.0 * Bugfix: dumping subs did not work when input is a VIDEO_TS DVD folder. Patch by Harry Gunnarsson * Sun Feb 02 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.7.9 * Added support for hardcoding embedded subtitles in files * Use -nosub for hadrcoding an external subtitle to prevent auto-loading of any embedded subtitles in the input * Use -ao null instead of -nosound * Sat Jan 18 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.7.8 * New variable in the config file, DELETE_AVI_AFTER_REMUX, to automatically delete the AVI file after remuxing. This updates the config file version to 27 * Renamed the 480 and 576 params of the colorprim_func() function to ntsc and pal * Fri Jan 03 2014 Grozdan Nikolov <neutrino8@gmail.com> 9.7.7 * Allow relative paths when storing options to the batchfile * Updated copyright dates * Fri Nov 15 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.7.6 * Allow importing of PGS subtitles into the MKV container * Improved chapters file handling for MKV/MP4/OGM when input is file * Fri Nov 08 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.7.5 * Added support for importing a chapters file for MKV/MP4/OGM when input is file * Added support for setting the audio language code for MKV/MP4/OGM/TS when input is file * Added support for setting the subtitle language code when importing subs into MKV/MP4/OGM * Sat Nov 02 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.7.4 * Fixed copying of E-AC-3 audio * Set default value for 3D frame packing to 3 (side by side) * Moved some audio selection code into the new set_audio_codec_func() function. Reduces some code duplication and removes the default_audio_codec_func() function * Fri Nov 01 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.7.3 * Merged the file and dvd audio detection/selection code * Merged the audio code for the first and subsequent tracks * Set a default audio ID based on input (ie, 0 for file and 128 for DVD) * Use -demuxer lavf for file and dir input * Small improvements to the subtitles code * Renamed the -help switch to -h * Improved the way audio tracks information is presented to the user * Make destination dir if it doesn't exist for saving to the batchfile * Updated the man page * Thu Oct 31 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.7.2 * Fixed exporting of the NERORMAUD variable to the batch file * Implemented support for virtually an infinite amount of subtitles. This introduces a new variable, MAX_AMOUNT_SUBS, to the config file where the user can set the amount of subtitles he/she wants h264enc to support * Added output name to the message of the mail notification feature * Fixed the nosound audio option * Renamed the rmtemp() function to exit_func() * Return proper exit codes. 0 on success, 1 on error and 2 on user interrupt * Wed Oct 30 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.7.1 * Enabled multi-channel support for Opus audio * Moved the MKV audio filters metadata after the audio codec/language metadata * Fixed copy and pcm audio encoding * If user chooses PCM for subsequent audio tracks, don't error out but just skip the track * Some minor clean-ups * Tue Oct 29 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.7.0 * Fix copying of subsequent audio tracks * Tue Oct 29 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.9 * Various bugfixes for multi-track audio support * Tue Oct 29 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.8 * Added -demuxer lavf for more reliable detection of audio streams in file input mode * Implemented virtually infinite support for the amount of audio tracks. This introduces a new variable in the config file, MAX_AMOUNT_AUD_TRACKS, where the user can specify how many audio tracks he/she wants h264enc to support. * Mon Oct 28 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.7 * Implemented support for 2nd and 3rd audio track when using "file" as input * Bugfix: when using Opus audio, calculating target file size was not possible * Added support for setting the AC-3 Exponent strategy search size * Allow applying an LFE filter to the AC-3 audio * Improved aften and opusenc options passing * Mon Oct 28 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.6 * Added support for the Opus audio codec. Requires opusenc and a recent version of mkvtoolnix with support for Opus * Updated the man page * Sun Oct 27 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.5 * Bugfix: codec detection for 2nd and 3rd audio track from DVDs did not work correctly * Sat Oct 26 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.4 * Restrict the AVCHD presets to AC-3 and COPY audio * Update the audio selection for the Blu-ray presets. DTS audio was supported but it wasn't displayed in the selection * Renamed function track_echo_func() to audio_track_echo_func() for consistency * Wed Oct 23 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.3 * Added support for setting the Dynamic Range Compression (DRC) profile for AC-3 audio * Renamed aften $AC3 variable to $AC3ENC * Use AC-3 instead of AC3 naming in metadata info * Tue Oct 22 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.2 * Added -readtoeof 1 option to the aften AC3 encoder. This ignores WAV header signaling and fixes encoding from a named pipe * Sun Oct 20 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.1 * Added support for encoding to 640 kbps AC3 audio * Tue Jul 02 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.6.0 * Fix audio TID for MKV when using neroAacEnc as encoder * Tue Jun 11 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.9 * Set correct color prims, transfers and matrix coeffs for Blu-ray/AVCHD SD resolutions * Removed space between two questions * Removed the sd* and hd* presets. They are useless * Updated the man page * Tue Jun 11 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.8 * Set VBV maxrate to 18k and VBV bufsize to 17k for the AVCHD presets * Added support for frame packing for 3D video * Add fake_interlaced to the AVCHD presets * Mon Jun 10 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.7 * Add fake_interlaced flag to 25fps/29.970fps content when using the Blu-ray presets. It allows to encode progressive 25p and 30p content but flags it as interlaced for Blu-ray compliance * Sun Jun 09 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.6 * Add rc_lookahead to the Blu-ray/AVCHD presets * When input is file, detect and display info about audio codec, channels, sample rate and bitrate * Sat Jun 08 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.5 * Enable weightp for the Blu-ray/AVCHD HQ presets. In order to have a broader compatibility with older Blu-ray players (mostly ones with buggy MediaTek chips), weightp is set to 1 and not 2 * Set VBV maxrate to 40000 and VBV buffer to 30000 for the Blu-ray presets * Set color primaries, transfer characteristics and matrix coeffs to bt709 for the Blu-ray/AVCHD presets * Set default position of the expand filter to after the scale filter * Fri Jun 07 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.4 * Improved the expand filter code * Optimized the Blu-ray/AVCHD HQ presets for better quality * Wed May 29 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.3 * Removed workarounds for older MP4Box versions. As of this release, only gpac 0.5.0 and higher is supported. SVN version is highly recommended, though * Improved AC3 and MP3 audio handling * Removed turbo option. It is no longer needed * When using AC3 audio, language TID for MKV was set to 1. It should be 0 * Tue May 28 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.2 * Fix OGM muxing with AC3 audio * Tue May 28 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.1 * Use aften for AC3 audio encoding as MEncoder is currently broken. This bumps up the config file version to 22 * Tue May 21 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.5.0 * Bugfix: add missing 384 kbps option for AC3 audio * Notify the user when we first create the config file * SAR is Sample Aspect Ratio, not Storage Aspect Ratio. Corrected this mistake * Thu Apr 11 2013 Grozdan Nikolov <neutrino8@gmail.com> 9.4.9 * Use ffmpeg's MPEG12 decoder instead of the libmpeg12 one * Mon Oct 01 2012 Grozdan Nikolov <neutrino8@gmail.com> 9.4.8 * Added bluray_compat=1 parameter to the Blu-ray and AVCHD presets * Use 'true' instead of 'false' where appropriate * Updated the man page * Wed Sep 26 2012 Grozdan Nikolov <neutrino8@gmail.com> 9.4.7 * Change bad default bitrate value in DTS audio encoding to 384kbps. * Mon Apr 16 2012 Grozdan Nikolov <neutrino8@gmail.com> 9.4.6 * Bugfix: FAAC encoding was using wrong language TID in mkvmerge. Should be 0 instead of 1 as we no longer encapsulate AAC in MP4 * Removed --no-chapters mkvmerge option for FAAC encoding. It's no longer needed as we no longer store the AAC audio in MP4 container * Sat Apr 07 2012 Grozdan Nikolov <neutrino8@gmail.com> 9.4.5 * Don't require FAAC to be compiled with MP4 container support (the -w option). Some distro's do not compile FAAC with MP4 support so play it safe and assume FAAC isn't compiled with MP4 support * Tue Feb 21 2012 Grozdan Nikolov <neutrino8@gmail.com> 9.4.4 * Only 'sed' mbtree for multi-pass mode * Don't append "- chapter [id]" to output file when encoding only specific chapters * Tue Jan 03 2012 Grozdan Nikolov <neutrino8@gmail.com> 9.4.3 * Use -vc dummy in MPlayer in the audio code. Seems to work better on some files * Sun Jan 01 2012 Grozdan Nikolov <neutrino8@gmail.com> 9.4.2 * Use a separate variable in config file for setting the default CRF or QP value (DEFAULT_VID_CRFQP). This bumps the config file version to 21 * Renamed the DEFOUTPUT, DEFPATH and DEFBATCHDIR variables to DEFAULT_OUTPUT, DEFAULT_PATH and DEFAULT_BATCHDIR * Be slightly more portable by using #!/usr/bin/env bash instead of #!/bin/bash shebang * Replaced some if conditionals in the -sc option by using 'test' directly * Added an option for passing additional MEncoder parameters. Useful for when the user wants to use something like -mc 0 -noskip, for example * Added support for encoding to DTS audio through the dcaenc encoder which can be found at http://aepatrakov.narod.ru/dcaenc/ * Minor changes to the video_delogo_func() function. Use $sourcetype, $device, $vid and $MPLAYEROPTS variables. Also use -nosound in MPlayer * Improved the mkvtags file. Escape special characters like &, <, > and " in the Title field * Mon Oct 10 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.4.1 * Introduced two new variables in the config file, DEFAULT_VID_BITRATE and DEFAULT_AUD_CODEC. The first one sets the default video bitrate or CRF/QP value while the second one can be used to set a default audio codec. This change updates the config file to version 20 * Fixed a typo in man page * Sun Aug 20 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.4.0 * Disable mbtree in multipass mode to prevent segfaulting MEncoder due to differences in frames amount in the passlog file. Disabling mbtree reduces quality but saves us a crash in MEncoder * Notify the user that the script does not support AAC in AVI anymore. Also exit if user has not selected any of the other supported containers * Mon Aug 08 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.3.9 * Bugfix: selecting the x264 internal denoiser does nothing due to missing $nr variable in the MEncoder options * Sat Jul 23 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.3.8 * Update the mq, nq, hq, vhq, ehq, uhq and ihq presets. Increase subme by 1. For the ihq preset, this means that it uses subme 11 now which requires latest x264 from git * Sun May 15 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.3.7 * Removed the ssim and psnr options from the presets. Should only be used for benchmarking * Sun Apr 04 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.3.6 * Fixed the subtitles function which got broken when the get_selection_func() function got introduced * Tue Mar 29 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.3.5 * Added support for setting the crop rounding value * Wed Mar 09 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.3.4 * Fix option 4 and 5 of the video_deblock_func() function. Wrong vars used * Mon Feb 21 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.3.3 * Fixed a bug in directory batch mode were wrong conditional was used to check for the DEFOUTPUT variable * Display which file is currently being processed in batch mode * Check only for files while in batch mode * Do not exit if user types an incorrect answer to y/n questions. Instead, ask the question again. Patch by Jan-Hendrik Peters and friends * Sat Jan 08 2011 Grozdan Nikolov <neutrino8@gmail.com> 9.3.2 * Use -demuxer lavf when trying to get the video length for bitrate calculation for a target file size. Should be more reliable on M2TS/TS files * Add support for the delogo filter. Patch by Haiko Michelfeit <haiko AT zsyndikat DOT org> Config file version is bumped to 19 * Updated copyright dates * Sun Dec 05 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.3.1 * Fix for the custom preset (cp) option * Fri Nov 26 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.3.0 * Remove double $HOME variable in the -scan option * Fri Oct 29 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.9 * Fix typo in the backup_file_func(): exisiting -> existing * Workaround multichan FAAC encoding. FAAC somehow does not like multichan PCM from MPlayer but it does if one treats it as raw using -P in FAAC. Nero/FLAC/Vorbis have no issues, though. Go figure * Added support for setting subtitle codepage during hardcoding of external subs * Added support for the audio equalizer filter. This updates the config file version to 18 * Removed 'time' requirement * Thu Sep 16 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.8 * Workaround mencoder stupidity. With recent versions of mencoder that have subs enabled by default (who came up with that great idea?), in case the user selects to dump a sub for importing into mkv/mp4, during multipass encoding the first sub will always get hardcoded due to missing -nosub option in the 2nd and 3rd pass code. This is only valid for multipass encodes so people using one pass modes (-1p, -qp or -crf) are safe. * Wed Sep 15 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.7 * Small update to the -scan option. Just check if input file is there, regardless if user provides the full path or not * Enable trellis in some presets that use CAVLC * Mon Aug 23 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.6 * Fixed a syntax error in the iphq preset * Sun Aug 22 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.5 * Update QuickTime & iPhone presets. Patch by gongloo * Wed Jul 21 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.4 * Typo fix in the display_quality_preset_func(); verslow -> veryslow. As this is an informative function, it does not affect the encoding configuration * Force -nosub option in case subtitles are skipped. This is to prevent auto-loading of subs * Fri Jun 25 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.3 * Added support for x264's preset, tune and profile options. This adds two additional optional args [-t (for tune) and -pf (for profile)] which can only be used with an x264 preset, not with the built-in script presets. If used with those, these args will be ignored. Examples on how to use x264 presets (which is also explained in the -help option) h264enc -crf -p slow h264enc -crf -p slow -t film h264enc -crf -p slow -pf main h264enc -crf -p slow -t film -pf high One can also switch the -t and -pf options, eg: h264enc -crf -p slow -pf high -t film * Updated the man page * Sat May 15 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.2 * Small bugfix in the get_devices_func() function; script exits when user hits enter to accept default device * Remove AVI menu entry as supported container when using FAAC for audio encoding * Thu Apr 29 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.1 * Reworked a bit the audio channels decode/output function. This function also got renamed from audio_channels_func() to audio_channels_decode_func() * Added support for the audio channels filter which can be used to add/remove/route channels This updates the config file to version 17 and adds variable ALLOW_AUD_CHANNELS * Bugfix: audio filters were not inserted when doing 1-pass encodes * Sat Apr 24 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.2.0 * Switch to using external FAAC encoder to work around an issue in mkvmerge where it flags AAC audio taken from an AVI as being Main profile regardless if LC profile is used for encoding or not. Problem noticed & reported by benpro. This updates the config file to version 16 and requires FAAC to be installed. * Same small cleanups * Updated the man page * Sun Mar 28 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.1.9 * Replaced sed with awk for checking available disk space. Should work better on FreeBSD systems. Patch by ennob from doom9 * Updated interlace options and presets to support the latest x264 from git. Note that due to these changes, h264enc's presets are incompatible with older x264 versions so please upgrade to latest x264 from git! * Small update to the preset.cfg file * Thu Mar 18 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.1.8 * Small bugfix: keyint and keyint_min weren't passed on to MEncoder when using some presets * Tue Mar 16 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.1.7 * Space escaped some previously missed variables * Use one variable in the presets (x264params) for all MEncoder x264 encoding options. Reduces some code and simplifies things a bit * Updated the preset.cfg file to support the "one variable for all x264 encoder opts" Note: those using custom preset files for encoding should read the preset.cfg file in the doc dir and adapt their existing preset files to be compatible with the changes. Previous older custom presets written by users will not work with this and future versions of h264enc! * Thu Feb 18 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.1.6 * Added new veriable 'DEFOUTPUT' to the config file which can be used to set a default output directory. This updates the config to version 15 * Modified the set_output_filename_func() function to support the above variable. - If the DEFOUTPUT variable is empty, user can either provide just the output name for the encode (in this case the script assumes $HOME as output dir), or the full path and output name, which in this case the script will create the output dir if it's not present or will do a write test when the dir is present to see if it's writable by the user. If creation of output dir or the write test fails, the script exits with a notice. - If the DEFOUTPUT variable contains a custom output dir, the script will test for it and create it if it's not present. If creation fails, the script exits with a notice. If the dir is present, the script will do a write test to see if the custom dir is writable. If not, the script exits with a notice. - The DEFOUTPUT variable can be overwritten on the command line. This means that if user has set a custom output dir in the DEFOUTPUT variable but provides a path when asked on the command line, that path will be used instead of the one in the DEFOUTPUT variable. The script then will either check and create the provided output dir on the command line (if that dir is not present) or will do a write test if the dir is present. Upon failure of creation or write test, the script exits with a notice. If no path is provided on the command line but only the output name for the encode, the script will use the one set in the DEFOUTPUT variable. * Sat Jan 30 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.1.5 * Reduced duplication in the audio encode exporting code by moving it inside functions * Reduced duplication in the MKV/MP4/TS/OGM exporting code by moving it inside functions * Reduced duplication in the code that prints some information before encoding starts * Various minor code improvements * Thu Jan 21 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.1.4 * Set default H.264 level to 'auto' and also accept integer numbers as levels in addition to accepting fixed point ones, ie both 41 and 4.1 are now accepted as valid levels * Renamed the rmconf() function to rmtemp() * Moved creation of temp dir, the interrupt_func() and rmtemp() functions at the beginning of the script * Fixed a bug in the DVD part of the -scan option where lsdvd doesn't get a valid device passed. Bug was introduced due to changes in the new get_devices_func() function * Reduced duplication in the mencoder_opts() function * Various small code improvements * Tue Jan 19 2010 Grozdan Nikolov <neutrino8@gmail.com> 9.1.3 * Made the TEMPDIR variable escape spaces in directory names * Small update to the mkvtags_func() function * Removed the -a52drc option for AC3 encoding * Added new x264 intra_refresh option to the script and the preset.cfg file * Added two new variables, DVD_DEVICE and CDROM_DEVICE, to the config file where user can set a default block device to encode from. This updates the config file to version 14 * Merged the get_dvd_devices_func() and get_vcd_devices_func() functions into a new one called get_devices_func() * Wed Dec 23 2009 Grozdan Nikolov <neutrino8@gmail.com> * Fixed a severe bug that can cause in some cases severe data loss when using a custom temp directory. It manifests itself when using a 'top' directory as custom temp directory such as a partition mount point or even the user's home directory. In such cases, the top directory will be deleted upon script termination or when encoding finishes, resulting in possible massive data loss due to rm -rf $TEMPDIR if TEMPDIR was set to, for example, /home/username or points to a mount point or another directory that may be important to the user. From now on, always use a job<pid> directory inside the one set in the TEMPDIR variable so it'll only delete the job<pid> directory and not its parent one, minimizing possibility of a data loss disaster * Set nomixed_refs for the iphq/iphhq presets * Thu Dec 10 2009 Grozdan Nikolov <neutrino8@gmail.com> * Disabled weightp for the AppleTV presets * Added new option sliced_threads present in latest x264 from git * Enabled b_pyramid for some presets that use mbtree as it now works with mbtree * Updated the preset.cfg file. Added sliced_threads option * Changed all video ALLOW_* variables in the config file to ALLOW_VID_* * When using dd to dump a DVD to an ISO, use options noerror,sync and a bs size of 2048 * Added support for sending mails. This requires the 'mailx' program and a valid .mailrc file in the home directory. Mail notification can be enabled in the config file of h264enc which also offers an example of a gmail setting for .mailrc * Bumped config file version to 13 * Updated copyright dates * Mon Nov 09 2009 Grozdan Nikolov <neutrino8@gmail.com> * Implemented a simple telecine detector for NTSC DVDs. Currently it's a dumb solution which can't distinguish between hard telecine and interlacing but it's enough to detect soft telecine and mixed progressive/telecine content which is more common * Simplified the FPS detection code * Update to all presets: added new weightp x264 option. This requires latest x264 revision from git * Updated the preset.cfg file. Added weightp option * Small general code improvements and cosmetics * Wed Nov 04 2009 Grozdan Nikolov <neutrino8@gmail.com> * Replaced a few if conditionals with case statements in the neroaac_audio_func() function * Sed a comma at the end of resolution detection in case we're dealing with TS files. The default TS demuxer in MPlayer has a comma at the end of the resolution info which results in errorneous behavior in the bc calculation * Simplified the resolution detection code * Some small cleanups * Mon Oct 19 2009 Grozdan Nikolov <neutrino8@gmail.com> * Force stereo audio for Nero HE-AACv2 as it doesn't support anything else, thus it results in failure if user tries to encode with more than two channels. This updates the audio_channels_func() function and also adds a small new independent one called neroaac_hev2_func() which only sets the channels to two if the channels array variables are empty, as is the case when the user did not set the channels * Small improvements to the ABR/VBR default audio bitrates for the neroAacEnc encoder. Base the default bitrates on the chosen AAC profile, i.e. if user chooses HE-AACv1, default bitrate will be 55 kbps or in case of quality-based VBR encoding a value of 0.22. For LC-AAC and HE-AACv2, default bitrates and quality values will be 96 kbps or 0.35 and 25 kbps or 0.11, respectively. Note that this assumes the input audio is stereo so if it's anything else than that, it's up to the user to decide on bitrates or quality values * Set default to a capital letter in questions where one needs to answer with y or n * Update to all presets: updated the b_pyramid option to use the new args none/strict/normal present in latest x264 revision. Note that this requires both latest MPlayer from SVN and latest x264 revision from git * Small b_pyramid update to the preset.cfg file * Sat Oct 17 2009 Grozdan Nikolov <neutrino8@gmail.com> * Added new function video_subtitles_align_func() for subtitle alignment control. Requested by blaz on doom9.org forum. * Added new x264 option 'constrained_intra' to the preset.cfg file. * Added detection of VFR content (1000 fps as reported by MPlayer). * Added X264_VERSION and MKVMERGE_VERSION entries to the mkvtags_func() function. * Simplified a bit the audio exporting code for the first track. * Thu Sep 24 2009 Grozdan Nikolov <neutrino8@gmail.com> * MP3 (MPEG1 Layer 3) only supports sample frequencies of 32, 44.1 and 48 kHz so restrict to those only in the audio_resample_func() function * Set default for the pp7 deblocker to 3 * Fixed example typo in the DVD chapters code * Insert the ilpack filter before the scaler to correctly align chroma channels when preserving interlacing * Added AUDIO_CODEC_TRACK[1|2|3], AUDIO_LANGUAGE_TRACK[1|2|3] and H264ENC_PARAMETERS entries to the mkvtags_func() function * Enabled adaptive transform for the AppleTV HQ preset (atvhq) * Improved checking the availability of block devices * Added option 'global_header' to the preset.cfg file * Wed Sep 16 2009 Grozdan Nikolov <neutrino8@gmail.com> * Small bugfix: setting the H.264 level for the fghq preset wasn't possible * Small bugfix: the counter in set_output_filename_func() didn't increase itself * Added SOURCE, VIDEO_FILTERS, AUDIO_FILTERS_TRACK[1|2|3], ENCODER and X264_PARAMETERS entries to the mkvtags_func() function * Mon Sep 14 2009 Grozdan Nikolov <neutrino8@gmail.com> * Use only lowercase words in all case statements that deal with the input source * Some small improvements to the exit info in the audio code * Placed the -passlogfile option inside the PASSLOG variable * Set psy_rd to 0.3 for the Anime presets * Allow setting the H.264 level for the PC presets to "auto" so libx264 will decide itself which level to use based on options and resolution used * Added support for 2-pass Nero AAC audio encoding. Note that 2-pass is only supported by ABR/CBR encoding and ensures that the output quality is constant (like VBR) while also ensuring that a specified output bitrate is achieved (like CBR). Requested by punlo on doom9.org * Sun Sep 06 2009 Grozdan Nikolov <neutrino8@gmail.com> * Fixed a typo in the man page, MEnocder -> MEncoder * Small improvement to how the MKV XML tagging file gets exported. Also improved the XML formatting and added COMMENT string with text "Tagged by h264enc $version" * Added comment tag for MP4 and OGM with the same text as above * Small update to the video_deinterlace_func() function's menu * Add comment header with dates to batch files * Fri Sep 04 2009 Grozdan Nikolov <neutrino8@gmail.com> * Added new option sync_lookahead available in latest x264 git and updated the preset.cfg file * Added support for the noise video filter. This change updates the config file to version 12. Also, encoding priority now defaults to a nice value of 10 in the config file * Moved out the code which checks and backups/renames a file if it has the same name as the output provided by the user to a separate function called backup_file_func() and also improved it so that if there's already an existing backup file, the new one will increase its count number by one thus there's no more overwriting being done anymore. The same thing applies to existing chapter files and DVD subs * Added support for Year and Genre metadata tagging for the MKV/MP4/OGM containers. For MKV, the genre and year is set globally using an automatically generated XML file. MP4 uses the iTunes tagging and OGM the comment space * Updated the man page * Tue Sep 01 2009 Grozdan Nikolov <neutrino8@gmail.com> * Simplified the audio_channels_func() function a bit * Merged the QP and CRF settings * Increased rc_lookahead a bit for the ehq, uhq and ihq presets * Improved detection of DVD audio language codes. We now specifically grep for the language word and then print the 2nd positional which gives us the language code. It works more reliably if the DVD does not report its language code for the audio track(s) so if this is the case, we fall back to undefined language. The previous code fails in such cases due to the printing of the 8th positional which will print the "aid:" part when there's no language code after the "language:" word, resulting in MKV/MP4 muxing failures. Reported by WalterK from doom9.org * Moved the code that deals with DVD subs/cover files/metadata info/chapters and external subs for the MP4 container before its audio code * Added slicing to the Blu-ray and AVCHD presets. It increases compliancy with the Blu-ray specs. Slicing is only available in the latest x264 from git so please upgrade if you intend to use the Blu-ray/AVCHD presets * Added new options 'slices', 'slice_max_size' and 'slice_max_mbs' to the preset.cfg file * Fixed chapters import for the OGM container. Missing '@' before the chapters input file results in the file not being imported * Added support for audio language metadata info for the OGM container * Small improvements to how chapters information is added to the output file name * Sat Aug 15 2009 Grozdan Nikolov <neutrino8@gmail.com> * Renamed presets f9 and f9hq to fl and flhq * Added new preset 'fghq' specifically optimized for preserving film grain * Removed duplicate videofilters variable. This removes the check for the tfields filter as now deinterlacing will always be done after cropping (which also speeds up things a bit) so the crop filter will never complain about crop area being outside of the original if tfields is used. It also reduces filters maintenance a bit * Turn soft-clipping on in the volume audio filter * Use aq_mode=1 for presets that have mbtree enabled as it usually does better on fades than aq_mode=2 * Updated the man page * Tue Aug 11 2009 Grozdan Nikolov <neutrino8@gmail.com> * Reduced the amount of if conditional iterations for setting the scaler interlace variable * Print full path of the output file(s) at the end of encoding * 10L: forgot to enable MB tree for the anihq preset * Replaced variable CONFIGDIR with TEMPDIR. This change updates the config file to version 11 * Fixed some spacings issues by moving around some echo's * Simplified the sample encoding code. Reduced some code duplication * Upped psy_rd from 0.6 to 0.8 * Fri Aug 07 2009 Grozdan Nikolov <neutrino8@gmail.com> * Added support for the audio panning filter. This change also updates the config file to version 10 * Simplifications to the audio_filters_func() and audio_filters_var_func() functions * Moved the audio filters functions after the audio codec ones * Fixed a bug in the audio_channels_func() function for the AAC codec. If user just hits return to accept the default AAC codec, the channels function was not called due to missing "" in the first case statement of that function * Enabled MB tree (macroblock tree ratecontrol) for the high quality presets and disabled b_pyramid for presets that have mbtree enabled as it currently doesn't support it. Note that mbtree produces a large passlog file when ran in 2-pass mode but can increase quality anywhere between 2-70%, depending on the content. mbtree is only available in latest x264 git so please upgrade * Added new options mbtree, rc_lookahead and nopsy to the preset.cfg file * Sat Aug 01 2009 Grozdan Nikolov <neutrino8@gmail.com> * Added new option -mfr which calculates the maximum allowed frame references within DPB (Decoded Picture Buffer) limits for different H.264 levels and resolutions * Call the track_echo_func() function inside the select_audio_codec_func() one. Removes pointless duplication * Don't call mplayer twice in the 2nd/3rd audio track code just to get the audio codec. Also removed a pointless case statement * Allow users to set the H.264 level when using the standard PC presets * Fixed a few typos in the preset.cfg file * Updated the man page * Thu Jul 30 2009 Grozdan Nikolov <neutrino8@gmail.com> * Increased subq to 10 (QP-RD) for the IHQ preset. Requires latest x264 from git. Also lowered frameref from 16 to 8 and bframes from 10 to 7 * Add example on how to encode only specific DVD chapters. Some people keep bugging me about this while it's actually very simple * Fri Jul 24 2009 Grozdan Nikolov <neutrino8@gmail.com> * Switched to the new Auto-variance AQ (aq_mode=2) for all presets. This requires latest x264 revision from git so please upgrade! * Decreased frame references for all iPod presets to 1 and increased subq to 8 for the HQ iPod presets * Minor improvments to the set_output_filename_func() function * Merged the audio code of the portable device presets. Moderately reduces code duplication in the audio functions calling code * Added two new presets (ag1 and ag1hq) for Android G1 devices. This brings the total presets count to 60 * Added support for the new gradfun debanding video filter. Although mostly recommended for playback due to the fact that encoding tends to bring back banding, it can be useful to deband input sources which show pretty bad and very noticable banding effects before passing the content to the encoder. The gradfun filter is only available in MPlayer SVN. This also adds a new variable ALLOW_DEBAND to the config file where one can enable or disable this filter * Added a small while loop to the video_crop_func() function which will keep asking the user for new crop values until he's satisfied with them. Patch by elektronaut from Doom9.org * Added a new variable PRIORITY to the config file which can be used to set a global priority nice value for the encoding process. The values one can use are between (and including) -20 and 19. However, if the script detects that the variable has a negative nice value set and the script is being executed with regular user privileges, it will print a notice and exit. This change updates the config file to version 9 * Updated the man page * Wed Jul 08 2009 Grozdan Nikolov <neutrino8@gmail.com> * Added detection for E-AC3 audio for stream copy and updated the MKV/TS muxing code to support it * Added new option -spr which calculates the Storage and Pixel Aspect Ratios (SAR/PAR) for various resolutions * Display the amount of chapters each DVD title has when scanning for titles * Display total pixels, SAR and PAR when scanning a file/vcd with the -scan option * Added --no-chapters mkvmerge option for audio files encoded by neroAacEnc so that chapters won't be copied over to the MKVs from these files * Small update to the install script * Updated the man page. Fix some small cosmetic issues, patch by Alessio Treglia * Wed Jul 01 2009 Grozdan Nikolov <neutrino8@gmail.com> * Fallback to undefined audio language in the AUDLANG[$i] variables if we detect unknown language from MPlayer's output * Added support for bitrate-based ABR Vorbis encoding in addition to quality-based VBR. ABR mode in Vorbis resembles quality-based VBR except the encoder averages a given nominal bitrate * Updated the Vorbis part of the video bitrate calculation code * Added new function ratio_and_pixels_func() which calculates and displays the Storage Aspect Ratio (SAR), Pixel Aspect Ratio (PAR) and total pixels from resolution * Bugfix for track 1 in the internal audio encoding code. If using aacplusenc to encode audio, the case statement had a wrong selection value (aac++ instead of aac+) resulting in displaying a failed message and forcing an exit even though the encoding may have succeeded * Simplifications to the internal audio encoding code which reduce code duplication * Small fixes to the video bitrate calculation code * Small tuning to the Blu-ray/AVCHD presets * Small cleanups * Fri Jun 26 2009 Grozdan Nikolov <neutrino8@gmail.com> * Set default audio codec for the Blu-ray/AVCHD presets to AC3 * Bugfix to the OGM muxing code. Second/third track were ignored when one selects AC3 audio * Added keyint, keyint_min, nr and interlaced variables to the custom preset skeleton file 'preset.cfg' * Moved the AACTYPE variable to the neroaac_audio_func() function and updated the specific parts that use it in the MKV/MP4 muxing code * Do not automatically detect audio sample rate in directory batch encoding mode. Only do it for single file/dvd/vcd encodings as in batch mode, detection will only print the sample rate of the first file but not the other files in the directory so this can mislead the user in thinking that all files in the directory have the sample rate reported by the script. It is possible to implement sample rate detection for all files but since we don't know how many files are in the directory, I do not want the user to see a full screen with sample rate info of each file if he deals with a directory with a few hundreds or more files in it * Disallow autocropping, if enabled in the config file, for directory batch encodings * Small reordering to the MP4 muxing code * Small update to the install script * Updated the man page * Wed Jun 24 2009 Grozdan Nikolov <neutrino8@gmail.com> * Removed audio filters for the 1st pass in 2-pass encoding and for the 1st & 2nd pass of a 3-pass encoding. They are useless here and it's something I've overlooked for a long time. Thanks to Mat Kanner for noticing and reporting * Some small changes to the way we pass FPS to MP4Box * Added support for MP4 hinting for RTP/RTSP sessions * Simplifications to the external subs importing code. Also fixed a bug in the MP4 subs importing code; missing -add option in the MP4SUBS variable will make MP4Box fail * Merged the MKV tagging code with the muxing one * Added support for detection of WMA audio for stream copy * Added support for per track audio codecs for DVD encodings. The user can now select if he wishes for each track a different audio codec. Mixing audio stream copy with compression codecs is also possible * Updated all relevant audio functions to support per track audio codecs * Updated the bitrate calculation code to support per track audio codecs * Updated the container muxing code to support the above audio changes * Mon Jun 22 2009 Grozdan Nikolov <neutrino8@gmail.com> * Small improvement to the MKV/MP4 tagging code: support audio tagging of single file encodes with audio stream copy * Use array variables ${SUBFILE[2] and ${SUBFILE[3] instead of ${OUTPUT%.*}_sub2 and ${OUTPUT%.*}_sub3 when dumping the second/third DVD subtitles * Simplified the MKV cover art importing code * Small improvements to video bitrate calculation with audio stream copy * Use only one named pipe for all tracks when encoding to neroAAC/AAC+/Vorbis/FLAC * Major audio code restructuring and partial rewrite. Converted virtually all audio code variables to array variables. This allows for easy extensibility and much less code duplication. It's very easy now to add as much audio tracks as one may want to the code with very little changes/updates needed to the containers code. Also the current changes may allow very easily to support different audio codecs per track in the future * Added support for a third DVD audio track * Updated the video bitrate calculation for target size to support the above audio changes * Converted most of the variables in the video_subtitles_func() function to arrays. This moderately reduces some code duplication * Updated the container muxing/tagging code to support the above audio changes * Use external flac encoder to encode to FLAC audio as doing it through mencoder is terribly broken. This updates the config file to version 8 and adds the 'flac' encoder as dependency * Set the default resampling filter to lavcresample as the other one gives problems when encoding to FLAC audio and resampling * Wed Jun 19 2009 Grozdan Nikolov <neutrino8@gmail.com> * Simplifications to the MKV tagging code which reduces some code duplication * Bugfix: FAAC acodec2 variable has wrong mpeg value. Must be mpeg=4 instead of mpeg4. This results in failure in encoding of the second audio track when one selects FAAC as encoder * Bugfix: FLAC audio was ignored for the second track due to missing value in the selection of the case statement * Added support for tagging of MKV files when doing a directory batch encoding * Replaced the IMPSUB1, IMPSUB2 and IMPSUB3 variables, used to import subs when input type is file/directory/vcd, by array variables EXTSUB[1], EXTSUB[2] and EXTSUB[3]. This allows for less code duplication as these array variables are shared by all input types (including DVD) and thus we only need to do a small loop and add their values if not empty to the MKVSUBS, MP4SUBS and OGMSUBS variables * Use as temp directory $HOME/.h264enc/job<PID> * Added new function audio_stream_copy_func() which will print a warning that audio stream copy in directory batch encoding mode is not recommended unless the user is certain that the files have a supported audio codec by the MKV/MP4/OGM/TS containers * Group audio filters under a submenu similar to how the video filters are grouped * Some small cleanups * Wed Jun 17 2009 Grozdan Nikolov <neutrino8@gmail.com> * Added support for per track audio bitrate for DVD encodings * Added support for per track audio normalization and volume adjustments for DVD encodings. Updated functions audio_volnorm_func() and audio_volume_func() * Added support for per track audio resampling for DVD encodings. Updated functions audio_resample_filters_func() and audio_resample_func() * Updated the video bitrate calculation code to support the above audio changes * Bugfix for the qt/bd/avchd presets: audio filters were not called for these presets * Added support for per track AAC profile settings (LC/HE/HEv2) when using the neroAacEnc audio encoder * Small modifications to the MKV/MP4 tagging and muxing code to support the per track neroAacEnc AAC profiles. This also includes optimizations to the way the tagging code handles different AAC profiles. If LC profile is chosen, audio will be tagged as LC-AAC (along with channels info). For HE and HEv2, audio will be tagged as HE-AACv1 and HE-AACv2 (along with channels info) respectively * Moved the MKV tagging code inside the MKV muxing code * Converted the EXTSUB1, EXTSUB2 and EXTSUB3 variables, used to import external DVD subs, to arrays so we can easily check different files for their file extensions * Only allow SRT subs as import into OGM. If another subs format is provided, the subs will be skipped. For MP4, do not allow ASS/SSA subs since it's not supported yet by MP4Box. For MKV, do not allow SUP and TTXT subs * Mon Jun 15 2009 Grozdan Nikolov <neutrino8@gmail.com> * Update to the video_subtitles_func() function: for DVD encodings, added support for importing up to three external subtitles into MKV/MP4/OGM. Also added support for hardcoding an external subtitle into the movie * Updated the MKV/MP4/OGM muxing code to support imports of external subtitles * Increased Psy RD from 0.5 to 0.6 for some presets * If dumping of the second and/or third DVD subtitle fails and user has selected to import the subs into MKV/MP4, force an exit since container conversion will fail as the muxing programs will complain about the missing subs. If no container conversion is chosen or user has chosen not to import the subs and dumping of subs fails, just continue since there's nothing critical in this case * Use mplayer -really-quiet option instead of redirection to /dev/null when dumping audio to a named pipe for neroAAC/Vorbis/AAC+ encoding * Some small updates to the man page * Updated the AUTHORS file * Fri Jun 12 2009 Grozdan Nikolov <neutrino8@gmail.com> * Replaced the --noaudio mkvmerge option with -A due to recent options changes in mkvmerge version 2.9.5. -A also works for older versions so nothing breaks here * Removed the check_outfile_func() function as its code has been added to the set_output_filename_func() function, which also has been improved * Added support for FLAC audio in MKV * Removed some code duplication in the MKV metadata tagging code * Tue Jun 09 2009 Grozdan Nikolov <neutrino8@gmail.com> * Added support for adding jpeg/png cover art files to MKV/MP4 * Added audio language meta-info for MP4 and TS files * Improved audio language meta-info for MKV files. This also adds metadata info for the second audio track * Fixed a small bug: the --aac-is-sbr mkvmerge parameter should be set to 0:1 for the second audio track when using aacplusenc as encoder * Mon Jun 08 2009 Grozdan Nikolov <neutrino8@gmail.com> * Add iTunes video title name to MP4 files * Sun May 24 2009 Grozdan Nikolov <neutrino8@gmail.com> * Use the same name for the log file as the output file name * Force using the libmpeg2 decoder when encoding DVDs/VCDs (works slightly better in specific cases compared to ffmpeg2) * Added support for IVTC 59.940 -> 23.976 fps * Some small code cosmetics * Tue May 12 2009 Grozdan Nikolov <neutrino8@gmail.com> * Added deinterlace combinations of Yadif + linear blend, linear interpolation, cubic interpolation, median deint, ffmpeg deint and lowpass 5 * Cosmetics to the help menu * Added global audio function audio_filters_func() for calling the resample, volume normalizing and volume filters * Added 16 new variables to the config file for enabling/disabling of specific audio/video filters and containers: ALLOW_FPS_CONVERSION, ALLOW_SCALER_TUNING, ALLOW_DSIZE, ALLOW_EXPAND, ALLOW_COLORSPACE, ALLOW_ASPECT, ALLOW_AUD_RESAMPLE, ALLOW_AUD_NORMALIZE, ALLOW_AUD_VOLUME, ALLOW_MKV_MUXING, ALLOW_MP4_MUXING, ALLOW_TS_MUXING, ALLOW_OGM_MUXING, ALLOW_SAMPLE_ENCODING, ALLOW_SCAN_MULTIPLE_VIDSTREAMS and ALLOW_SCAN_MULTIPLE_AUDSTREAMS, the last two are only effective on file and directory batch encodings * Updated the man page * Thu May 7 2009 Grozdan Nikolov <neutrino8@gmail.com> * Automatically add the shebang line to batch files and make them executable * Added new variable ALLOW_AUTOCROP to the config file which allows the user to enable or disable automatic cropping * Added MP3 presets and updated target file size code to support them (requested by Rogério Brito) * Some minor adjustments to the hq, vhq, ehq, uhq and ihq presets; decrease b-frames by one * Wed Apr 29 2009 Grozdan Nikolov <neutrino8@gmail.com> - Small bugfix: video filters variables in the config file were not respected when one chooses to encode VCDs. - Add video title meta-data for MKV and OGM when doing directory batch encodings * Tue Apr 28 2009 Grozdan Nikolov <neutrino8@gmail.com> * Optimize some variables by replacing piping to sed with VARIABLE1="${VARIABLE2%.*}.ext" * Move out the built-in -loop 1 mplayer option to the config file's MPLAYEROPTS variable * Add support for enabling/disabling specific pre/postprocessing filters in the config file. This adds 7 new variables to the config file where the user can either enable to ask questions about a specific filter or disable a specific variable, thus skipping questions about the filter * Moved the video filters code to a new function called video_filters_func(). This also reduces a bit of code duplication * Add a new option -e which allows the user to edit the config file directly from within the terminal. This adds a new variable EDITOR to the config file where the user can set his preferred text editor (defaults to nano) * Silence possible dvdxchap warnings * Updated the man page * Thu Apr 26 2009 Grozdan Nikolov <neutrino8@gmail.com> * Bugfix: missing 's' in the sed expression of the MP4OUT variable. This results in missing output file and will fail when one tries to remux to mp4
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.