Projects
Multimedia
ffx264
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 13
View file
ffx264.changes
Changed
@@ -1,4 +1,16 @@ ------------------------------------------------------------------- +Tue Nov 08 10:10:00 UTC 2016 - neutrino8@opensuse.org + +- Update to version 3.1.2 + * Added support for encoding to TrueHD audio. Requires a very + recent ffmpeg version, preferably latest from git + * Some small improvements to the additional container output + * Moved the video_deinterlace_func() function inside the actual + deinterlace code + * Update to the README file + * Update to the man page + +------------------------------------------------------------------- Mon Nov 07 16:25:00 UTC 2016 - neutrino8@opensuse.org - Update to version 3.1.1
View file
ffx264.spec
Changed
@@ -17,7 +17,7 @@ Name: ffx264 -Version: 3.1.1 +Version: 3.1.2 Release: 0 Summary: A small shell script for encoding to H.264 with ffmpeg License: GPL-2.0+
View file
ffx264-3.1.1.tar.gz/ChangeLog -> ffx264-3.1.2.tar.gz/ChangeLog
Changed
@@ -1,3 +1,12 @@ +2016-11-08 - ffx264 3.1.2 + * Added support for encoding to TrueHD audio. Requires a very recent + ffmpeg version, preferably latest from git + * Some small improvements to the additional container output + * Moved the video_deinterlace_func() function inside the actual + deinterlace code + * Update to the README file + * Update to the man page + 2016-11-07 - ffx264 3.1.1 * Cosmetics in the code for deinterlacing * Instead of skipping FPS conversion if the FPS can't be detected,
View file
ffx264-3.1.1.tar.gz/README -> ffx264-3.1.2.tar.gz/README
Changed
@@ -17,7 +17,7 @@ - it supports copying virtually an unlimited amount of subtitles. - it creates the final output directory if user provides a path in addition to the output name. - it supports virtually an unlimited amount of audio tracks. -- it supports encoding audio to AC-3, E-AC-3, DTS, MP3, Opus, Vorbis, FLAC, PCM or AAC or copying an audio track. +- it supports encoding audio to AC-3, E-AC-3, TrueHD, DTS, MP3, Opus, Vorbis, FLAC, PCM or AAC or copying an audio track. - it supports setting the nice value in the config file. - it supports a limited amount of user-provided metadata. - it optionally scales the video.
View file
ffx264-3.1.1.tar.gz/ffx264 -> ffx264-3.1.2.tar.gz/ffx264
Changed
@@ -2,8 +2,8 @@ # # Small script to encode to H.264/AVC video using FFmpeg and libx264. # Author: Grozdan "microchip" Nikolov <neutrino8@opensuse.org> -# Version: 3.1.1 -# Date: 2016-11-07 +# Version: 3.1.2 +# Date: 2016-11-08 # # ffx264 is free software ; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ brown() { echo -e "\e[0;33m$1\e[0;39;49m"; } error() { echo -e "\e[1;31m$1\e[0;39;49m"; } -version="3.1.1" +version="3.1.2" CFG="$HOME/.ffx264" cfgversion="24" @@ -581,12 +581,12 @@ fi fi -# Used by mc deinterlace and FPS conversion +# Used by mc/bobbing deinterlace and FPS conversion video_fps_func() { GETFPS="$($FFPROBE -i "$input" -select_streams v:0 -show_entries stream=r_frame_rate 2>&1 | sed -n 's|^r_frame_rate=||p')" } -# Used by mc deinterlace and interlace-aware encoding +# Used by mc/bobbing deinterlace and interlace-aware encoding video_field_parity_func() { echo green "-> Detecting Field Parity..." @@ -612,24 +612,23 @@ } if [ "$VID_DEINTERLACE" = "y" ]; then - video_deinterlace_func() { - printf "Use Motion-Compensation Deinterlacing? [y/N]: " - read mcd - if [ "$mcd" = "y" -o "$mcd" = "Y" ]; then - video_field_parity_func - printf "Specify the Field Parity of the Input File [tff/bff - default is $defpar]: " - read par - test -z "$par" && fpar="$defpar" || fpar="$par" - fi - case "$1" in - ofps) test ! -z "$fpar" && deinterlace="yadif=1,mcdeint=mode=medium:parity=$fpar:qp=10,framestep=step=2," || deinterlace="yadif=0," ;; - bob) test ! -z "$fpar" && deinterlace="yadif=1,mcdeint=mode=medium:parity=$fpar:qp=10," || deinterlace="yadif=1," ;; - esac - } - printf "Deinterlace the Input File? [y/N]: " read deint if [ "$deint" = "y" -o "$deint" = "Y" ]; then + video_deinterlace_func() { + printf "Use Motion-Compensation Deinterlacing? [y/N]: " + read mcd + if [ "$mcd" = "y" -o "$mcd" = "Y" ]; then + video_field_parity_func + printf "Specify the Field Parity of the Input File [tff/bff - default is $defpar]: " + read par + test -z "$par" && fpar="$defpar" || fpar="$par" + fi + case "$1" in + ofps) test ! -z "$fpar" && deinterlace="yadif=1,mcdeint=mode=medium:parity=$fpar:qp=10,framestep=step=2," || deinterlace="yadif=0," ;; + bob) test ! -z "$fpar" && deinterlace="yadif=1,mcdeint=mode=medium:parity=$fpar:qp=10," || deinterlace="yadif=1," ;; + esac + } echo brown " Deinterlace Methods" brown " ~~~~~~~~~~~~~~~~~~~" @@ -698,7 +697,7 @@ fi if [ -z "$deinterlace" ]; then - printf "Enable Interlace-aware encoding? [y/N]: " + printf "Enable Interlace-aware Encoding? [y/N]: " read intaw if [ "$intaw" = "y" -o "$intaw" = "Y" ]; then video_field_parity_func @@ -1074,6 +1073,7 @@ echo " Opus ----> Channels Support: 8 (ffmpeg max)" echo " Vorbis --> Channels Support: 8 (ffmpeg max)" echo " MP3 -----> Channels Support: 2 (codec max)" + echo " TrueHD --> Channels Support: 6 (encoder max)" echo " FLAC ----> Channels Support: 8 (codec max)" echo " PCM -----> Channels Support: 8 (ffmpeg max)" echo " COPY ----> Channels Support: depends on audio codec" @@ -1107,6 +1107,14 @@ abropts[i]="32-6144" abrdef[i]="768" ;; + truehd) + strict="-strict -2" + acdc[i]="truehd" + ameta[i]="TrueHD" + abropts[i]="1000-18000" + abrdef[i]="5000" + skiptfs="1" + ;; dts) strict="-strict -2" acdc[i]="dca" @@ -1193,7 +1201,7 @@ case "$CON" in mp4) case "${acodec[i]}" in - pcm|opus|flac) + pcm|opus|flac|truehd) error "-> $(echo "${acodec[i]}" | tr '[:lower:]' '[:upper:]') is not supported by the MP4 container!" error "-> Check your config file, if needed, in '$CFG'" exit 1 @@ -1202,7 +1210,7 @@ ;; mov) case "${acodec[i]}" in - pcm|opus) + pcm|opus|truehd) error "-> $(echo "${acodec[i]}" | tr '[:lower:]' '[:upper:]') is not supported by the MOV container!" error "-> Check your config file, if needed, in '$CFG'" exit 1 @@ -1211,7 +1219,7 @@ ;; m4v) case "${acodec[i]}" in - eac3|dts|vorbis|flac|pcm|opus) + eac3|dts|vorbis|flac|pcm|opus|truehd) error "-> $(echo "${acodec[i]}" | tr '[:lower:]' '[:upper:]') is not supported by the M4V container!" error "-> Check your config file, if needed, in '$CFG'" exit 1 @@ -1220,7 +1228,7 @@ ;; avi) case "${acodec[i]}" in - opus) + opus|truehd) error "-> $(echo "${acodec[i]}" | tr '[:lower:]' '[:upper:]') is not supported by the AVI container!" error "-> Check your config file, if needed, in '$CFG'" exit 1 @@ -1268,7 +1276,7 @@ esac case "${acodec[i]}" in - ac3|eac3|dts|aac|fdk*|mp3|vorbis|opus|"") + ac3|eac3|truehd|dts|aac|fdk*|mp3|vorbis|opus|"") printf "Track $i: Specify the Audio Bitrate in kbps [${abropts[i]} - default is ${abrdef[i]}]: " read abr[i] test -z "${abr[i]}" && abitrate[i]="${abrdef[i]}k" || abitrate[i]="${abr[i]}k" @@ -1278,7 +1286,7 @@ esac case "${acodec[i]}" in - ac3|eac3|dts|"") chanrange[i]="1-6"; defchan[i]="6" ;; + ac3|eac3|truehd|dts|"") chanrange[i]="1-6"; defchan[i]="6" ;; aac|opus|vorbis|flac|pcm) chanrange[i]="1-8"; defchan[i]="8" ;; mp3) chanrange[i]="1-2"; defchan[i]="2" ;; fdk*) @@ -1307,13 +1315,14 @@ ;; esac case "${acodec[i]}" in - ac3|eac3|"") + ac3|eac3|truehd|"") case "${ach[i]}" in [1-6]) true ;; *) case "${acodec[i]}" in ac3|"") error "-> AC-3 supports only 1-6 channels!" ;; eac3) error "-> E-AC-3 encoder in ffmpeg supports only 1-6 channels!" ;; + truehd) error "-> TrueHD encoder in ffmpeg supports only 1-6 channels!" ;; esac exit 1 ;; @@ -1466,7 +1475,7 @@ ;; esac ;; - vorbis|pcm) + vorbis|pcm|truehd) brown " Supported Sample Rates" brown " ~~~~~~~~~~~~~~~~~~~~~~" echo " 0 -> 8000 Hz 5 -> 24000 Hz 10 -> 88200 Hz" @@ -1522,7 +1531,7 @@ mp4) for a in $(eval echo "{1..$MAX_AUD_TRACKS}"); do case "${acodec[a]}" in - pcm|opus|flac) + pcm|opus|flac|truehd) error "-> Additional container $i does not support ${acodec[a]} audio!" error "-> See: $formats_url" exit 1 @@ -1533,7 +1542,7 @@ mov) for a in $(eval echo "{1..$MAX_AUD_TRACKS}"); do case "${acodec[a]}" in - pcm|opus) + pcm|opus|truehd) error "-> Additional container $i does not support ${acodec[a]} audio!" error "-> See: $formats_url" exit 1 @@ -1544,7 +1553,7 @@ m4v) for a in $(eval echo "{1..$MAX_AUD_TRACKS}"); do case "${acodec[a]}" in - eac3|dts|vorbis|flac|pcm|opus) + eac3|dts|vorbis|flac|pcm|opus|truehd) error "-> Additional container $i does not support ${acodec[a]} audio!" error "-> See: $formats_url" exit 1 @@ -1555,7 +1564,7 @@ avi) for a in $(eval echo "{1..$MAX_AUD_TRACKS}"); do case "${acodec[a]}" in - opus) + opus|truehd) error "-> Additional container $i does not support ${acodec[a]} audio!" error "-> See: $formats_url" exit 1 @@ -1578,6 +1587,11 @@ # Haven't found a reliable way to make it work with # FLAC and PCM audio so just skip this if one of # these audio codecs is chosen. Patch welcome + # In case of TrueHD, while we support setting the + # bitrate, that codec is variable in nature and + # the actual bitrate can wildly fluctuate, which + # will result in miscalculation for the target + # size by an unknown amount if [ -z "$skiptfs" ]; then echo printf "Set a Target File Size? [y/N]: " @@ -1694,15 +1708,16 @@ echo "" >> "$OUTFILE.sh" if [ ! -z "$extracon" ]; then for i in $extracon; do + echo "echo" >> "$OUTFILE.sh" + echo "echo -e \"\e[1;32m-> Converting to $i...\e[0;39;49m\"" >> "$OUTFILE.sh" case "$i" in - avi) echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy -bsf:v h264_mp4toannexb \"${OUTPUT%.*}.$i\"" >> "$OUTFILE.sh" ;; - *) echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy \"${OUTPUT%.*}.$i\"" >> "$OUTFILE.sh" ;; + avi) echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy -bsf:v h264_mp4toannexb \"${OUTPUT%.*}.$i\" >/dev/null 2>&1" >> "$OUTFILE.sh" ;; + *) echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy \"${OUTPUT%.*}.$i\" >/dev/null 2>&1" >> "$OUTFILE.sh" ;; esac - echo "" >> "$OUTFILE.sh" + echo "test \"\$?\" = \"0\" && echo -e \"\e[1;32m-> Done\e[0;39;49m\" || echo -e \"\e[1;31m-> Failed!\e[0;39;49m\"" >> "$OUTFILE.sh" done + echo "echo" >> "$OUTFILE.sh" fi chmod +x "$OUTFILE.sh" source "$OUTFILE.sh" - -exit $?
View file
ffx264-3.1.1.tar.gz/ffx264.1 -> ffx264-3.1.2.tar.gz/ffx264.1
Changed
@@ -3,7 +3,7 @@ .de IPs .IP "\\$1" .. -.TH ffx264 1 "Sep 05, 2016" +.TH ffx264 1 "Nov 07, 2016" .SH NAME ffx264 @@ -14,8 +14,8 @@ .SH DESCRIPTION \fBffx264\fR is a small, yet quite capable shell script for encoding to the H.264/AVC video -format. It uses the FFmpeg encoder and the libx264 library. \fBffx264\fR supports the basic -requirements for video encoding coupled with support for encoding multiple audio tracks +format. It uses the FFmpeg encoder and the libx264 library. \fBffx264\fR supports mostly the +basic requirements for video encoding coupled with support for encoding multiple audio tracks and copying multiple subtitles. \fBffx264\fR only supports as input video files so it is not possible to encode directly from a DVD/BD drive or an ISO image. .LP
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
.