Changes of Revision 154

ffhevc.changes Changed
x
 
1
@@ -1,4 +1,17 @@
2
 -------------------------------------------------------------------
3
+Sat Oct 19 07:16:00 UTC 2019 - neutrino8@opensuse.org
4
+
5
+- Update to version 3.9.1
6
+* Use atomicparsley to add cover art for the mp4/m4v
7
+  containers. This removes dependence on MP4Box and
8
+  makes it possible to copy over metadata info in
9
+  an easy way
10
+* Add +frag_keyframe to the -movflags option when
11
+  output is mp4
12
+* Renamed variable METACOVER to MKVCOVER
13
+* Updated the man page
14
+
15
+-------------------------------------------------------------------
16
 Fri Oct 18 04:56:00 UTC 2019 - neutrino8@opensuse.org
17
 
18
 - Update to version 3.9.0
19
ffhevc.spec Changed
19
 
1
@@ -17,7 +17,7 @@
2
 
3
 
4
 Name:           ffhevc
5
-Version:        3.9.0
6
+Version:        3.9.1
7
 Release:        0
8
 Summary:        A small shell script for encoding to H.265/HEVC with ffmpeg
9
 License:        GPL-2.0+
10
@@ -27,7 +27,7 @@
11
 Requires:       ffmpeg
12
 Requires:       bc
13
 Requires:       MPlayer
14
-Requires:       gpac
15
+Requires:       AtomicParsley
16
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
17
 BuildArch:      noarch
18
 
19
ffhevc-3.9.0.tar.gz/ChangeLog -> ffhevc-3.9.1.tar.gz/ChangeLog Changed
15
 
1
@@ -1,3 +1,13 @@
2
+----------- - ffhevc 3.9.1
3
+   * Use atomicparsley to add cover art for the mp4/m4v
4
+     containers. This removes dependence on MP4Box and
5
+     makes it possible to copy over metadata info in
6
+     an easy way
7
+   * Add +frag_keyframe to the -movflags option when
8
+     output is mp4
9
+   * Renamed variable METACOVER to MKVCOVER
10
+   * Updated the man page
11
+
12
 2019-10-18 - ffhevc 3.9.0
13
    * Bugfix: use correct video track for crop
14
      preview with MPlayer
15
ffhevc-3.9.0.tar.gz/ffhevc -> ffhevc-3.9.1.tar.gz/ffhevc Changed
176
 
1
@@ -2,8 +2,8 @@
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.0
6
-# Date: 2019-10-18
7
+# Version: 3.9.1
8
+# Date: 2019-10-19
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
@@ -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.0"
17
+version="3.9.1"
18
 
19
 CFG="$HOME/.ffhevc"
20
-cfgversion="47"
21
+cfgversion="48"
22
 
23
 genconfig_func() {
24
 cat<<EOF>>"$CFG"
25
@@ -126,7 +126,7 @@
26
 FFMPEG=""
27
 FFPROBE=""
28
 MPLAYER=""
29
-MP4BOX=""
30
+ATOMICPARSLEY=""
31
 
32
 # Add a custom comment to your encodes
33
 # Leave empty to disable/ask each time
34
@@ -387,17 +387,17 @@
35
    fi
36
 fi
37
 
38
-if [ ! -z "$MP4BOX" ]; then
39
-   if [ ! -x "$MP4BOX" ]; then
40
-       error "-> MP4Box is missing from your system!"
41
+if [ ! -z "$ATOMICPARSLEY" ]; then
42
+   if [ ! -x "$ATOMICPARSLEY" ]; then
43
+       error "-> atomicparsley is missing from your system!"
44
        error "-> Check the config in '$CFG'"
45
        echo
46
        exit 1
47
    fi
48
 else
49
-   MP4BOX="$(which MP4Box 2>/dev/null)"
50
-   if [ ! -x "$MP4BOX" ]; then
51
-       error "-> MP4Box is missing from your system!"
52
+   ATOMICPARSLEY="$(which atomicparsley 2>/dev/null)"
53
+   if [ ! -x "$ATOMICPARSLEY" ]; then
54
+       error "-> atomicparsley is missing from your system!"
55
        echo
56
        exit 1
57
    fi
58
@@ -433,7 +433,7 @@
59
    CONFMT="$(echo "$CONFMT" | tr '[:upper:]' '[:lower:]')"
60
    if [ ! -z "$CONFMT" ]; then
61
        case "$CONFMT" in
62
-           mp4|mov)        movflags="-movflags +faststart" ;;
63
+           mp4|mov)        movflags="-movflags +faststart+frag_keyframe" ;;
64
            mkv|m2ts|mts|ts)    true ;;
65
            *)
66
            error "-> HEVC video not supported by the chosen container!"
67
@@ -651,7 +651,7 @@
68
 fi
69
 
70
 case "$CONFMT" in
71
-   mkv|mp4|mov)
72
+   mkv|mp4|m4v)
73
    printf "Specify a Cover Image in JPG/PNG format [press 'Enter' to skip]: "
74
    read -e cover
75
    if [ ! -z "$cover" ]; then
76
@@ -668,16 +668,9 @@
77
                ;;
78
            esac
79
            case "$CONFMT" in
80
-               mkv)    METACOVER="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\"" ;;
81
-               *)  MP4COVER="-itags cover=\"$(readlink -e "$cover")\"" ;;
82
+               mkv)        MKVCOVER="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\"" ;;
83
+               mp4|m4v)    MP4COVER="1" ;;
84
            esac
85
-           if [ ! -z "$remuxcon" ]; then
86
-               for i in $remuxcon; do
87
-                   case "$i" in
88
-                       mp4|mov)    MP4COVER2="-itags cover=\"$(readlink -e "$cover")\"" ;;
89
-                   esac
90
-               done
91
-           fi
92
        fi
93
    fi
94
    ;;
95
@@ -3424,20 +3417,20 @@
96
    case "$1" in
97
        1p|crf)
98
        test "$encmode" = "1p" && passone="bitrate=$vbitrate" || passone="crf=$CRF"
99
-       OPTS1="${audparams[*]} $subparams $strict $movflags $METACOVER \"$OUTPUT\""
100
+       OPTS1="${audparams[*]} $subparams $strict $movflags $MKVCOVER \"$OUTPUT\""
101
        ;;
102
        2p)
103
        passone="stats=\"${OUTFILE%.*}.log\":pass=1:bitrate=$vbitrate"
104
        passtwo="stats=\"${OUTFILE%.*}.log\":pass=2:bitrate=$vbitrate"
105
        OPTS1="-an -f null -y /dev/null"
106
-       OPTS2="${audparams[*]} $subparams $strict $movflags $METACOVER \"$OUTPUT\""
107
+       OPTS2="${audparams[*]} $subparams $strict $movflags $MKVCOVER \"$OUTPUT\""
108
        ;;
109
        3p)
110
        passone="stats=\"${OUTFILE%.*}.log\":pass=1:bitrate=$vbitrate"
111
        passtwo="stats=\"${OUTFILE%.*}.log\":pass=3:bitrate=$vbitrate"
112
        OPTS1="-an -f null -y /dev/null"
113
        OPTS2="-an -f null -y /dev/null"
114
-       OPTS3="${audparams[*]} $subparams $strict $movflags $METACOVER \"$OUTPUT\""
115
+       OPTS3="${audparams[*]} $subparams $strict $movflags $MKVCOVER \"$OUTPUT\""
116
        ;;
117
    esac
118
    echo "nice -n $NICE $FFMPEG -i \"$input\" $VIDOPTS -c:v libx265 -x265-params $passone$X265PARAMS $OPTS1"
119
@@ -3484,14 +3477,14 @@
120
 encoder_func $encmode >> "$OUTFILE"
121
 echo "" >> "$OUTFILE"
122
 case "$CONFMT" in
123
-   mp4|mov)
124
+   mp4|m4v)
125
    if [ ! -z "$MP4COVER" ]; then
126
-       case "$CONFMT" in
127
-           mp4)    hint="-hint" ;;
128
-       esac
129
-       echo "$MP4BOX -add \"$OUTPUT\" $MP4COVER -mpeg4 $hint -new \"${OUTPUT%.*}_tmp$$.$CONFMT\" >/dev/null 2>&1" >> "$OUTFILE"
130
-       echo "rm -f \"$OUTPUT\"" >> "$OUTFILE"
131
-       echo "mv -f \"${OUTPUT%.*}_tmp$$.$CONFMT\" \"$OUTPUT\"" >> "$OUTFILE"
132
+       echo "echo" >> "$OUTFILE"
133
+       echo "green \"-> Adding cover image...\"" >> "$OUTFILE"
134
+       echo "$ATOMICPARSLEY \"$OUTPUT\" --artwork \"$(readlink -e "$cover")\" --overWrite >/dev/null 2>&1" >> "$OUTFILE"
135
+       echo "test \"\$?\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE"
136
+       echo "echo" >> "$OUTFILE"
137
+       echo "" >> "$OUTFILE"
138
    fi
139
    ;;
140
 esac
141
@@ -3500,19 +3493,24 @@
142
        echo "" >> "$OUTFILE"
143
        echo "echo" >> "$OUTFILE"
144
        echo "green \"-> Remuxing to $i...\"" >> "$OUTFILE"
145
-       echo "" >> "$OUTFILE"
146
-       echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy $strict \"${OUTPUT%.*}.$i\" >/dev/null 2>&1" >> "$OUTFILE"
147
+       case "$i" in
148
+           mkv)
149
+           if [ ! -z "$MP4COVER" ]; then
150
+               MKVCOVER2="-attach \"$(readlink -e "$cover")\" -metadata:s:t mimetype=\"image/$img\""
151
+           fi
152
+           ;;
153
+           *)  MKVCOVER2="" ;;
154
+       esac
155
+       echo "$FFMPEG -i \"$OUTPUT\" -map 0 -c copy $strict $MKVCOVER2 $METATITLE $METAGENRE $METAYEAR $METACOMMENT ${audmeta[*]} ${audlang[*]} ${sublang[*]} ${sublng[*]} \"${OUTPUT%.*}.$i\" >/dev/null 2>&1" >> "$OUTFILE"
156
        echo "test \"\$?\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE"
157
        case "$i" in
158
-           mp4|mov)
159
-           if [ ! -z "$MP4COVER2" ]; then
160
-               case "$i" in
161
-                   mp4)    hint2="-hint" ;;
162
-               esac
163
+           mp4|m4v)
164
+           if [ ! -z "$MKVCOVER" ]; then
165
                echo "" >> "$OUTFILE"
166
-               echo "$MP4BOX -add \"${OUTPUT%.*}.$i\" $MP4COVER2 -mpeg4 $hint2 -new \"${OUTPUT%.*}_tmp$$.$i\" >/dev/null 2>&1" >> "$OUTFILE"
167
-               echo "rm -f \"${OUTPUT%.*}.$i\"" >> "$OUTFILE"
168
-               echo "mv -f \"${OUTPUT%.*}_tmp$$.$i\" \"${OUTPUT%.*}.$i\"" >> "$OUTFILE"
169
+               echo "echo" >> "$OUTFILE"
170
+               echo "green \"-> Adding cover image...\"" >> "$OUTFILE"
171
+               echo "$ATOMICPARSLEY \"${OUTPUT%.*}.$i\" --artwork \"$(readlink -e "$cover")\" --overWrite >/dev/null 2>&1" >> "$OUTFILE"
172
+               echo "test \"\$?\" = \"0\" && green \"-> Done\" || red \"-> Failed!\"" >> "$OUTFILE"
173
            fi
174
            ;;
175
        esac
176
ffhevc-3.9.0.tar.gz/ffhevc.1 -> ffhevc-3.9.1.tar.gz/ffhevc.1 Changed
19
 
1
@@ -3,7 +3,7 @@
2
 .de IPs
3
 .IP "\\$1"
4
 ..
5
-.TH ffhevc 1 "Oct 18, 2019"
6
+.TH ffhevc 1 "Oct 19, 2019"
7
 .SH NAME
8
 ffhevc
9
 
10
@@ -30,7 +30,7 @@
11
 .br
12
 - MPlayer (for crop preview only)
13
 .br
14
-- MP4Box from GPAC (for mp4/mov cover art only)
15
+- atomicparsley, version 0.9.2 or higher (for mp4 cover art only)
16
 .br
17
 - bc
18
 
19