We truncated the diff of some files because they were too big.
If you want to see the full diff for every file, click here.
Changes of Revision 169
ffhevc.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Sat Oct 26 07:05:00 UTC 2019 - neutrino8@opensuse.org
4
+
5
+- Update to version 3.9.9
6
+* Renamed audio variable aid[i] to aidx[i] and moved it outside
7
+ of the if conditional that decides the audio codec. This
8
+ removes the same code in three places and now uses the
9
+ global aidx[i] variable
10
+* HE-AACv2 only supports 2 channels. Update the audio code
11
+ to reflect that
12
+* When running in batch mode, add a warning about automatic
13
+ audio metadata and offer an option to enable/disable it
14
+* Added -tmp option to MP4Box to store temp files in the
15
+ output directory
16
+* Some minor improvements to the audio options
17
+
18
+-------------------------------------------------------------------
19
Fri Oct 25 05:31:00 UTC 2019 - neutrino8@opensuse.org
20
21
- Update to version 3.9.8
22
ffhevc.spec
Changed
10
1
2
3
4
Name: ffhevc
5
-Version: 3.9.8
6
+Version: 3.9.9
7
Release: 0
8
Summary: A small shell script for encoding to H.265/HEVC with FFmpeg
9
License: GPL-2.0+
10
ffhevc-3.9.8.tar.gz/ChangeLog -> ffhevc-3.9.9.tar.gz/ChangeLog
Changed
18
1
2
+2019-10-26 - ffhevc 3.9.9
3
+ * Renamed audio variable aid[i] to aidx[i] and moved it outside
4
+ of the if conditional that decides the audio codec. This
5
+ removes the same code in three places and now uses the
6
+ global aidx[i] variable
7
+ * HE-AACv2 only supports 2 channels. Update the audio code
8
+ to reflect that
9
+ * When running in batch mode, add a warning about automatic
10
+ audio metadata and offer an option to enable/disable it
11
+ * Added -tmp option to MP4Box to store temp files in the
12
+ output directory
13
+ * Some minor improvements to the audio options
14
+
15
2019-10-25 - ffhevc 3.9.8
16
* Removed M4V from the case statements for cover art.
17
I confused it with ffx264 which supports M4V while
18
ffhevc-3.9.8.tar.gz/ffhevc -> ffhevc-3.9.9.tar.gz/ffhevc
Changed
201
1
2
#
3
# Small script to encode to H.265/HEVC video using FFmpeg and libx265.
4
# Author: Grozdan "microchip" Nikolov <neutrino8@opensuse.org>
5
-# Version: 3.9.8
6
-# Date: 2019-10-25
7
+# Version: 3.9.9
8
+# Date: 2019-10-26
9
#
10
# ffhevc is free software ; you can redistribute it and/or modify
11
# it under the terms of the GNU General Public License as published by
12
13
brown() { echo -e "\e[0;33m$1\e[0;39;49m"; }
14
error() { echo -e "\e[1;31m$1\e[0;39;49m"; }
15
16
-version="3.9.8"
17
+version="3.9.9"
18
19
CFG="$HOME/.ffhevc"
20
cfgversion="50"
21
22
# support
23
strict="-strict -2"
24
25
+ if [ ! -z "$batchmode" ]; then
26
+ echo
27
+ error "-> Due to current codebase limitations, automatic audio metadata"
28
+ error " will be that of the first input file provided. If all input files"
29
+ error " have the same audio properties (bit depth, sample rate, etc)"
30
+ error " this won't be an issue. Usually, complete seasons of film series"
31
+ error " have the same audio properties."
32
+ error " Otherwise you may want to:"
33
+ echo
34
+ error "-> Disable auto metadata completely"
35
+ echo
36
+ error "-> Enable it but you will need to modify the batchfile yourself and"
37
+ error " update the data to reflect the correct audio properties. Then"
38
+ error " encode from there."
39
+ echo
40
+ printf "Disable Automatic Audio Metadata? [y/N]: "
41
+ read noautometa
42
+ if [ "$noautometa" = "y" -o "$noautometa" = "Y" ]; then
43
+ noaudmeta="1"
44
+ fi
45
+ echo
46
+ fi
47
+
48
for i in $(eval echo "{1..$ATRACKS}"); do
49
audindex[i]="$(($i-1))"
50
printf "Track $i: Specify the Audio Track to Encode or Copy [default is 0:1]: "
51
read astream[i]
52
test -z "${astream[i]}" && atrack[i]="0:1" || atrack[i]="${astream[i]}"
53
+
54
+ audmap[i]="-map ${atrack[i]}"
55
+
56
printf "Track $i: Specify the 3-letter Language Code for Metadata [press 'Enter' to skip]: "
57
read alang[i]
58
test ! -z "${alang[i]}" && audlang[i]="-metadata:s:a:${audindex[i]} language=${alang[i]}"
59
- audmap[i]="-map ${atrack[i]}"
60
done
61
62
if [ -z "$DEFAULT_AUD_CODEC" ]; then
63
64
flac)
65
acdc[i]="flac"
66
acdcmeta[i]="FLAC"
67
- abropts[i]="0-12"
68
+ abropts[i]="0(low)-12(high)"
69
abrdef[i]="5"
70
skiptfs="1"
71
;;
72
alac)
73
acdc[i]="alac"
74
acdcmeta[i]="ALAC"
75
- abropts[i]="0-12"
76
+ abropts[i]="0(low)-12(high)"
77
abrdef[i]="5"
78
skiptfs="1"
79
;;
80
81
esac
82
done
83
84
+ aidx[i]="$(($(echo "${atrack[i]}" | awk -F: '{print $2}')-1))"
85
+ test "${aidx[i]}" = "-1" && aidx[i]="0"
86
+
87
if [ "${acodec[i]}" != "copy" ]; then
88
- aid[i]="$(($(echo "${atrack[i]}" | awk -F: '{print $2}')-1))"
89
- test "${aid[i]}" = "-1" && aid[i]="0"
90
- GETAUDBD[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aid[i]} -show_entries stream=bits_per_raw_sample -of default=noprint_wrappers=1:nokey=1 | tail -1)"
91
+ GETAUDBD[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aidx[i]} -show_entries stream=bits_per_raw_sample -of default=noprint_wrappers=1:nokey=1 | tail -1)"
92
if [ ! -z "${GETAUDBD[i]}" ]; then
93
case "${GETAUDBD[i]}" in
94
- [1-9]*) abdmeta[i]=", ${GETAUDBD[i]} bits src" ;;
95
+ [1-9]*) abdmeta[i]=", ${GETAUDBD[i]} bits input" ;;
96
esac
97
fi
98
case "${acodec[i]}" in
99
100
dts) chanrange[i]="1/2/4/5/6"; defchan[i]="6" ;;
101
fdk*)
102
case "${aacprof[i]}" in
103
- aac_low|aac_he|aac_ld) chanrange[i]="1-8"; defchan[i]="8" ;;
104
- *) chanrange[i]="1-2"; defchan[i]="2" ;;
105
+ aac_he_v2) true ;;
106
+ *) chanrange[i]="1-8"; defchan[i]="8" ;;
107
esac
108
;;
109
esac
110
111
- printf "Track $i: How many Channels to Encode? [${chanrange[i]} - default is ${defchan[i]}]: "
112
- read achan[i]
113
- test -z "${achan[i]}" && ach[i]="${defchan[i]}" || ach[i]="${achan[i]}"
114
+ case "${aacprof[i]}" in
115
+ aac_he_v2) ach[i]="2" ;;
116
+ ""|*)
117
+ printf "Track $i: How many Channels to Encode? [${chanrange[i]} - default is ${defchan[i]}]: "
118
+ read achan[i]
119
+ test -z "${achan[i]}" && ach[i]="${defchan[i]}" || ach[i]="${achan[i]}"
120
+ ;;
121
+ esac
122
case "${acodec[i]}" in
123
ac3|eac3)
124
case "${ach[i]}" in
125
126
;;
127
fdk*)
128
case "${aacprof[i]}" in
129
- aac_he_v2)
130
- case "${ach[i]}" in
131
- 1|2) true ;;
132
- *)
133
- error "-> HE-AACv2 supports only 1-2 channels!"
134
- exit 1
135
- ;;
136
- esac
137
- ;;
138
+ aac_he_v2) true ;;
139
*)
140
case "${ach[i]}" in
141
[1-6]|8) true ;;
142
143
esac
144
;;
145
fdk*)
146
- echo " 0 -> Mono 4 -> 5.0"
147
- echo " 1 -> Stereo 5 -> 5.1"
148
- echo " 2 -> 3.0 6 -> 7.1"
149
- echo " 3 -> 4.0 7 -> 7.1(wide)"
150
- echo
151
- printf "Track $i: Specify the Audio Channel Layout [default is 6]: "
152
- read achanlayout[i]
153
- case "${achanlayout[i]}" in
154
- 0) achlayout[i]="mono"; achmeta[i]=" Mono" ;;
155
- 1) achlayout[i]="stereo"; achmeta[i]=" Stereo" ;;
156
- 2) achlayout[i]="3.0"; achmeta[i]=" 3.0" ;;
157
- 3) achlayout[i]="4.0"; achmeta[i]=" 4.0" ;;
158
- 4) achlayout[i]="5.0"; achmeta[i]=" 5.0" ;;
159
- 5) achlayout[i]="5.1"; achmeta[i]=" 5.1" ;;
160
- 6|"") achlayout[i]="7.1"; achmeta[i]=" 7.1" ;;
161
- 7) achlayout[i]="7.1(wide)"; achmeta[i]=" 7.1(wide)" ;;
162
+ case "${aacprof[i]}" in
163
+ aac_he_v2) achlayout[i]="stereo"; achmeta[i]=" Stereo" ;;
164
*)
165
- error "-> Invalid option!"
166
- exit 1
167
+ echo " 0 -> Mono 4 -> 5.0"
168
+ echo " 1 -> Stereo 5 -> 5.1"
169
+ echo " 2 -> 3.0 6 -> 7.1"
170
+ echo " 3 -> 4.0 7 -> 7.1(wide)"
171
+ echo
172
+ printf "Track $i: Specify the Audio Channel Layout [default is 6]: "
173
+ read achanlayout[i]
174
+ case "${achanlayout[i]}" in
175
+ 0) achlayout[i]="mono"; achmeta[i]=" Mono" ;;
176
+ 1) achlayout[i]="stereo"; achmeta[i]=" Stereo" ;;
177
+ 2) achlayout[i]="3.0"; achmeta[i]=" 3.0" ;;
178
+ 3) achlayout[i]="4.0"; achmeta[i]=" 4.0" ;;
179
+ 4) achlayout[i]="5.0"; achmeta[i]=" 5.0" ;;
180
+ 5) achlayout[i]="5.1"; achmeta[i]=" 5.1" ;;
181
+ 6|"") achlayout[i]="7.1"; achmeta[i]=" 7.1" ;;
182
+ 7) achlayout[i]="7.1(wide)"; achmeta[i]=" 7.1(wide)" ;;
183
+ *)
184
+ error "-> Invalid option!"
185
+ exit 1
186
+ ;;
187
+ esac
188
;;
189
esac
190
;;
191
192
echo
193
green "-> Track $i: detecting audio sample rate..."
194
sleep 1
195
- GETAUDSR[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aid[i]} -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 | tail -1)"
196
+ GETAUDSR[i]="$($FFPROBE -i "$input" -v quiet -select_streams a:${aidx[i]} -show_entries stream=sample_rate -of default=noprint_wrappers=1:nokey=1 | tail -1)"
197
if [ ! -z "${GETAUDSR[i]}" ]; then
198
green "-> Track $i: detected ${GETAUDSR[i]} Hz"
199
else
200
201