Changes of Revision 117

ffx264.changes Changed
x
 
1
@@ -1,4 +1,16 @@
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
@@ -17,7 +17,7 @@
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
@@ -27,7 +27,7 @@
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
@@ -1,3 +1,12 @@
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,8 +2,8 @@
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
@@ -24,10 +24,10 @@
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
@@ -123,7 +123,7 @@
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
@@ -385,17 +385,17 @@
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
@@ -664,7 +664,7 @@
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
@@ -682,7 +682,7 @@
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
@@ -2023,6 +2023,14 @@
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
@@ -2036,7 +2044,11 @@
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
@@ -2047,22 +2059,22 @@
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
@@ -2097,8 +2109,12 @@
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
@@ -2124,10 +2140,10 @@
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
@@ -2158,8 +2174,8 @@
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
@@ -3386,12 +3402,16 @@
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
@@ -3414,16 +3434,32 @@
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
@@ -3,7 +3,7 @@
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
@@ -30,7 +30,7 @@
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