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 117
ffx264.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Sun Oct 20 04:39:00 UTC 2019 - neutrino8@opensuse.org
4
+
5
+- Update to version 3.9.2
6
+* Added support for embedding of SRT/SSA/ASS subtitles
7
+ in the MP4/M4V containers
8
+* Moved back to MP4Box for adding cover art to MP4/M4V/MOV.
9
+ Apparently, after lots of testing, atomicparsley
10
+ creates files that hang during playback
11
+* Cosmetics
12
+* Updated the man page
13
+
14
+-------------------------------------------------------------------
15
Sat Oct 19 07:16:00 UTC 2019 - neutrino8@opensuse.org
16
17
- Update to version 3.9.1
18
ffx264.spec
Changed
19
1
2
3
4
Name: ffx264
5
-Version: 3.9.1
6
+Version: 3.9.2
7
Release: 0
8
Summary: A small shell script for encoding to H.264 with ffmpeg
9
License: GPL-2.0+
10
11
Requires: ffmpeg
12
Requires: bc
13
Requires: MPlayer
14
-Requires: AtomicParsley
15
+Requires: gpac
16
BuildRoot: %{_tmppath}/%{name}-%{version}-build
17
BuildArch: noarch
18
19
ffx264-3.9.1.tar.gz/ChangeLog -> ffx264-3.9.2.tar.gz/ChangeLog
Changed
14
1
2
+2019-10-20 - ffx264 3.9.2
3
+ * Added support for embedding of SRT/SSA/ASS subtitles
4
+ in the MP4/M4V containers
5
+ * Moved back to MP4Box for adding cover art to MP4/M4V/MOV.
6
+ Apparently, after lots of testing, atomicparsley
7
+ creates files that hang during playback
8
+ * Cosmetics
9
+ * Updated the man page
10
+
11
2019-10-19- ffx264 3.9.1
12
* Use atomicparsley to add cover art for the mp4/m4v
13
containers. This removes dependence on MP4Box and
14
ffx264-3.9.1.tar.gz/ffx264 -> ffx264-3.9.2.tar.gz/ffx264
Changed
201
1
2
#
3
# Small script to encode to H.264/AVC video using FFmpeg and libx264.
4
# Author: Grozdan "microchip" Nikolov <neutrino8@opensuse.org>
5
-# Version: 3.9.1
6
-# Date: 2019-10-19
7
+# Version: 3.9.2
8
+# Date: 2019-10-20
9
#
10
# ffx264 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.1"
17
+version="3.9.2"
18
19
CFG="$HOME/.ffx264"
20
-cfgversion="38"
21
+cfgversion="39"
22
23
genconfig_func() {
24
cat<<EOF>>"$CFG"
25
26
FFMPEG=""
27
FFPROBE=""
28
MPLAYER=""
29
-ATOMICPARSLEY=""
30
+MP4BOX=""
31
32
# Add a custom comment to your encodes
33
# Leave empty to disable/ask each time
34
35
fi
36
fi
37
38
-if [ ! -z "$ATOMICPARSLEY" ]; then
39
- if [ ! -x "$ATOMICPARSLEY" ]; then
40
- error "-> atomicparsley is missing from your system!"
41
+if [ ! -z "$MP4BOX" ]; then
42
+ if [ ! -x "$MP4BOX" ]; then
43
+ error "-> MP4Box is missing from your system!"
44
error "-> Check the config in '$CFG'"
45
echo
46
exit 1
47
fi
48
else
49
- ATOMICPARSLEY="$(which atomicparsley 2>/dev/null)"
50
- if [ ! -x "$ATOMICPARSLEY" ]; then
51
- error "-> atomicparsley is missing from your system!"
52
+ MP4BOX="$(which MP4Box 2>/dev/null)"
53
+ if [ ! -x "$MP4BOX" ]; then
54
+ error "-> MP4Box is missing from your system!"
55
echo
56
exit 1
57
fi
58
59
fi
60
61
case "$CONFMT" in
62
- mkv|mp4|m4v)
63
+ mkv|mp4|m4v|mov)
64
printf "Specify a Cover Image in JPG/PNG format [press 'Enter' to skip]: "
65
read -e cover
66
if [ ! -z "$cover" ]; then
67
68
esac
69
case "$CONFMT" in
70
mkv) MKVCOVER="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\"" ;;
71
- mp4|m4v) MP4COVER="1" ;;
72
+ mp4|m4v|mov) MP4COVER="1" ;;
73
esac
74
fi
75
fi
76
77
exit 1
78
;;
79
esac
80
+ case "$CONFMT" in
81
+ mkv|mp4|m4v|m2ts|mts|ts) true ;;
82
+ *)
83
+ error "-> The $CONFMT container doesn't support SRT/SSA/ASS subtitles!"
84
+ error "-> Supported containers are: mkv, mp4, m4v, m2ts, mts and ts"
85
+ exit 1
86
+ ;;
87
+ esac
88
if [ "$SUBCP" != "0" ]; then
89
for i in $(eval echo "{1..$SUBCP}"); do
90
subindex[i]="$(($i-1))"
91
92
# where in some cases it flags subsequent tracks
93
# as default.
94
test "$i" = "1" && sdis="default" || sdis="none"
95
- subcopy[i]="-map ${subnr[i]} -c:s:${subindex[i]} copy ${sublang[i]} -disposition:s:${subindex[i]} $sdis"
96
+ case "$CONFMT" in
97
+ mp4|m4v) submuxer_in="mov_text" ;;
98
+ *) submuxer_in="copy" ;;
99
+ esac
100
+ subcopy[i]="-map ${subnr[i]} -c:s:${subindex[i]} $submuxer_in ${sublang[i]} -disposition:s:${subindex[i]} $sdis"
101
else
102
error "-> No value given!"
103
exit 1
104
105
;;
106
ext)
107
case "$CONFMT" in
108
- mkv|m2ts|mts|ts) true ;;
109
+ mkv|mp4|m4v|m2ts|mts|ts) true ;;
110
*)
111
- error "-> The $CONFMT container doesn't support srt/ssa subtitles!"
112
- error "-> Supported containers are: mkv, m2ts, mts and ts"
113
+ error "-> The $CONFMT container doesn't support SRT/SSA/ASS subtitles!"
114
+ error "-> Supported containers are: mkv, mp4, m4v, m2ts, mts and ts"
115
exit 1
116
;;
117
esac
118
if [ ! -z "$remuxcon" ]; then
119
for i in $remuxcon; do
120
case "$i" in
121
- mkv|m2ts|mts|ts) true ;;
122
+ mkv|mp4|m4v|m2ts|mts|ts) true ;;
123
*)
124
echo
125
error "-> Warning: One or more chosen additional container"
126
- error " doesn't support srt/ssa subtitles!"
127
- error "-> Remuxing will most likely fail!"
128
+ error " doesn't support SRT/SSA/ASS subtitles!"
129
+ error "-> Subtitles will be ignored during remuxing!"
130
echo
131
break
132
;;
133
134
else
135
test "$i" = "1" && sdispo="default" || sdispo="none"
136
fi
137
- EXTSUBS[i]="-i \"${subfile[i]}\""
138
- subcpy[i]="-map $i:0 -c:s:${subidx[i]} copy ${sublng[i]} -disposition:s:${subidx[i]} $sdispo"
139
+ case "$CONFMT" in
140
+ mp4|m4v) submuxer_ext="mov_text" ;;
141
+ *) submuxer_ext="copy" ;;
142
+ esac
143
+ EXTSUBS[i]="-i \"$(readlink -e "${subfile[i]}")\""
144
+ subcpy[i]="-map $i:0 -c:s:${subidx[i]} $submuxer_ext ${sublng[i]} -disposition:s:${subidx[i]} $sdispo"
145
fi
146
done
147
fi
148
149
echo
150
brown " Subtitles"
151
brown " ~~~~~~~~~"
152
- echo " 0 -> Copy subtitles from the input file"
153
- echo " 1 -> Add external subtitle files (SRT/SSA only!)"
154
- echo " 2 -> Copy subs from input file + add external ones (SRT/SSA only!)"
155
- echo " 3 -> Hardcode a subtitle (text-based subs only!)"
156
+ echo " 0 -> Copy subtitles from the input file (SRT/SSA/ASS only!)"
157
+ echo " 1 -> Add external subtitle files (SRT/SSA/ASS only!)"
158
+ echo " 2 -> Copy subs from input file + add external ones (SRT/SSA/ASS only!)"
159
+ echo " 3 -> Hardcode a subtitle (SRT/SSA/ASS only!)"
160
echo
161
printf "Specify the Subtitle Option [press 'Enter' to skip]: "
162
read subopt
163
164
;;
165
3)
166
echo
167
- echo " 0 -> Hardcode an External Subtitle (text-based subs only!)"
168
- echo " 1 -> Hardcode an Embedded Subtitle (text-based subs only!)"
169
+ echo " 0 -> Hardcode an External Subtitle (SRT/SSA/ASS only!)"
170
+ echo " 1 -> Hardcode an Embedded Subtitle (SRT/SSA/ASS only!)"
171
echo
172
printf "Specify the Subtitle Option [press 'Enter' to skip]: "
173
read sub
174
175
encoder_func $encmode >> "$OUTFILE"
176
echo "" >> "$OUTFILE"
177
case "$CONFMT" in
178
- mp4|m4v)
179
+ mp4|m4v|mov)
180
if [ ! -z "$MP4COVER" ]; then
181
echo "echo" >> "$OUTFILE"
182
echo "green \"-> Adding cover image...\"" >> "$OUTFILE"
183
- echo "$ATOMICPARSLEY \"$OUTPUT\" --artwork \"$(readlink -e "$cover")\" --overWrite >/dev/null 2>&1" >> "$OUTFILE"
184
- echo "test \"\$?\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE"
185
+ echo "$MP4BOX -add \"$OUTPUT\" -itags cover=\"$(readlink -e "$cover")\":name=\"$(basename "${OUTPUT%.*}")\":genre=\"$genre\":created=\"$year\":comment=\"$COMMENT\" -mpeg4 -new \"${OUTPUT%.*}_COVER_$$.$CONFMT\" >/dev/null 2>&1" >> "$OUTFILE"
186
+ echo "RET=\$?" >> "$OUTFILE"
187
+ echo "test \"\$RET\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE"
188
+ echo "if [ \"\$RET\" = \"0\" ]; then" >> "$OUTFILE"
189
+ echo "mv -f \"${OUTPUT%.*}_COVER_$$.$CONFMT\" \"${OUTPUT%.*}.$CONFMT\"" >> "$OUTFILE"
190
+ echo "fi" >> "$OUTFILE"
191
echo "echo" >> "$OUTFILE"
192
echo "" >> "$OUTFILE"
193
fi
194
195
;;
196
*) vflags1=""; vflags2=""; MKVCOVER2="" ;;
197
esac
198
- echo "$FFMPEG $vflags1 -i \"$OUTPUT\" -map 0 -c copy $vflags2 $strict $MKVCOVER2 $METATITLE $METAGENRE $METAYEAR $METACOMMENT ${audmeta[*]} ${audlang[*]} ${sublang[*]} ${sublng[*]} \"${OUTPUT%.*}.$i\" >/dev/null 2>&1" >> "$OUTFILE"
199
+ if [ "$subparams" != "-sn" ]; then
200
+ case "$i" in
201
ffx264-3.9.1.tar.gz/ffx264.1 -> ffx264-3.9.2.tar.gz/ffx264.1
Changed
19
1
2
.de IPs
3
.IP "\\$1"
4
..
5
-.TH ffx264 1 "Oct 19, 2019"
6
+.TH ffx264 1 "Oct 20, 2019"
7
.SH NAME
8
ffx264
9
10
11
.br
12
- MPlayer (for crop preview only)
13
.br
14
-- atomicparsley, version 0.9.2 or higher (for mp4 cover art only)
15
+- MP4Box from GPAC (for mp4/m4v/mov cover art only)
16
.br
17
- bc
18
19