Skip to content

Commit 6c19b63

Browse files
committed
2020-02-17
1 parent d10584e commit 6c19b63

1 file changed

Lines changed: 78 additions & 13 deletions

File tree

vdr-transcode

Lines changed: 78 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ confs=/etc/vdr-transcode-s.conf
5757
runs=/var/run/vt_server.pid
5858
vtc=vt.conf
5959
lck=vt.lck
60+
declare -a lang
61+
declare -a langa
6062

6163
#exit
6264

@@ -438,7 +440,6 @@ read_configuration() {
438440
#exit
439441
}
440442

441-
declare -a lang
442443

443444
set_lang() {
444445
#set -x
@@ -545,7 +546,8 @@ status() {
545546
dur=$(echo $dur|cut -d \ -f 2)
546547
dur=${dur:0:8}
547548
durs=$(date -u "+%s" -d "1970-01-01 $dur")
548-
fps1=$(grep "Video:" $log|head -n 1)
549+
#fps1=$(grep "Video:" $log|head -n 1)
550+
fps1=$(grep "Video:" $log|tail -n 1)
549551
# Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc Stream #0:0(eng): Video: hevc (hevc_nvenc) (Main), cuda, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 2000 kb/s, 50 fps, 1k tbn, 50 tbc
550552
fps1=${fps1%fps,*}
551553
nw=$(echo $fps1|wc -w)
@@ -635,7 +637,7 @@ input_file() {
635637
fi
636638
ls_iso $INPUT > $old
637639
# -rw-r--r-- 1 ftp ftp 4084731329 13. Mai 2014 exq-12years-720p.mkv
638-
oldsize=$(ls -l $INPUT|cut -d \ -f 5)
640+
oldsize=$(ls -lL $INPUT|cut -d \ -f 5)
639641
oldsize=$(($oldsize/1024))
640642
echo "oldsize="$oldsize >> $old
641643
ffmpeg_i="-i $INPUT"
@@ -921,13 +923,15 @@ input_dvd() {
921923
#dest="../"$(date "+%F.%H.%M" -d @$s)".$tr-$d32.rec"
922924
dest=$(date "+%F.%H.%M" -d @$s)".$tr-$d32.rec"
923925
done
926+
else
927+
which mediainfo 2> /dev/null
928+
if [ $? -eq 0 ]
929+
then
930+
[ "$nochapt" != "1" ] && chapt_mediainfo $dvd_path"VTS_"$tr2"_0.IFO"
931+
fi
924932
fi
925-
OPT_G="$OPT_G -fflags +genpts"
926-
which mediainfo 2> /dev/null
927-
if [ $? -eq 0 ]
928-
then
929-
[ "$nochapt" != "1" ] && chapt_mediainfo $dvd_path"VTS_"$tr2"_0.IFO"
930-
fi
933+
#OPT_G="$OPT_G -fflags +genpts"
934+
OPT_G="$OPT_G -fix_sub_duration"
931935
#exit
932936
}
933937

@@ -955,6 +959,16 @@ chapt_tsmuxer() {
955959
dur=$(($dur+$durs))
956960
#exit
957961
fi
962+
if [ "${line:0:9}" == "Track ID:" ]
963+
then
964+
tid=$(echo $line|cut -d ':' -f 2)
965+
tid=$(echo $tid)
966+
fi
967+
if [ "${line:0:12}" == "Stream lang:" ]
968+
then
969+
l1=$(echo $line|cut -d ':' -f 2)
970+
langa[$tid]=$(echo $l1)
971+
fi
958972
done < $temp
959973
#exit
960974
ch=0
@@ -1002,6 +1016,11 @@ BD_size() {
10021016
fn=0
10031017
sum=0
10041018
f=$(printf "$1/BDMV/STREAM/%05d.m2ts" $fn)
1019+
if [ ! -e $f ]
1020+
then
1021+
fn=1
1022+
f=$(printf "$1/BDMV/STREAM/%05d.m2ts" $fn)
1023+
fi
10051024
while [ -e $f ]
10061025
do
10071026
s=$(ls -l $f|cut -d \ -f 5)
@@ -1305,9 +1324,17 @@ set_vp9() {
13051324
fi
13061325
}
13071326

1327+
set_av1() {
1328+
aopt="-row-mt 1"
1329+
#aopt="$aopt -tiles 4x1"
1330+
aopt="$aopt -tiles 2x2"
1331+
aopt="$aopt -threads 8"
1332+
video="-c:v libaom-av1 -cpu-used 8 -crf $crf $aopt -strict experimental"
1333+
}
13081334

13091335
set_aac() {
1310-
if [ "$atyp" != "stereo" ]
1336+
# '[' 2 '!=' stereo ']'
1337+
if [ "$atyp" != "stereo" -a "$atyp" != "2" ]
13111338
then
13121339
audio_t="-c:$stro $aaclib -b:$stro $aac_6ch_br"
13131340
else
@@ -1337,7 +1364,7 @@ analyze() {
13371364
fi
13381365
echo "deinterlace=$deinterlace" >> $log_c
13391366
[ "$deinterlace" != "" ] && add_vf $deinterlace
1340-
[ "$vf" != "" ] && vf="-vf $vf"
1367+
#[ "$vf" != "" ] && vf="-vf $vf"
13411368
#exit
13421369
# vdr
13431370
# Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
@@ -1363,6 +1390,8 @@ analyze() {
13631390
# mpg
13641391
# Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, fcc/bt470bg/bt470bg, top first), 480x576 [SAR 8:5 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
13651392
# Stream #0:1[0x1c0]: Audio: mp2, 44100 Hz, stereo, s16p, 128 kb/s
1393+
#
1394+
# Stream #0:3(ger): Audio: eac3, 48000 Hz, 2 channels, fltp
13661395

13671396
#set -x
13681397
map="-map 0:v:0"
@@ -1379,7 +1408,12 @@ analyze() {
13791408
#if [ "$ifmt" == "vdr" -o "$ifmt" == "dvd" -o "$ifmt" == "mpg" -o "$ifmt" == "ts" -o "$ifmt" == "m2ts" -o $ifmt == "BD" -o $ifmt == "MTS" ]
13801409
if [[ "$str1" == *[* ]]
13811410
then
1411+
#set -x
13821412
str=${str1%%[*}
1413+
trid=${line#*[}
1414+
trid=${trid%%]*}
1415+
#[ "${langa[$(($trid))]}" != "" ] && metal="$metal -metadata:s:$stro language=${langa[$(($trid))]}"
1416+
#exit
13831417
else
13841418
str=${str1%%(*}
13851419
str=${str%%:*}
@@ -1411,6 +1445,16 @@ analyze() {
14111445
nw=$(echo $fps1|wc -w)
14121446
fps=$(echo $fps1|cut -d \ -f $nw)
14131447
ivcodec=$codec
1448+
if [ "$OUTPUT" == "vdr" ]
1449+
then
1450+
#[ "$fps" == "23.98" ] && add_vf "fps=25"
1451+
#[ "$fps" == "29.97" ] && add_vf "fps=50"
1452+
#[ $fps -lt 25 ] && add_vf "fps=25" && fpso=25
1453+
[ "$fps" "<" "25" ] && add_vf "fps=25" && fpso=25
1454+
#[ $fps -gt 25 ] && add_vf "fps=50" && fpso=50
1455+
[ "$fps" ">" "25" -a "$fps" != "50" ] && add_vf "fps=50" && fpso=50
1456+
fi
1457+
[ "$vf" != "" ] && vf="-vf $vf"
14141458
#exit
14151459
fi
14161460
if [ "$typ" == "Audio:" ]
@@ -1425,7 +1469,7 @@ analyze() {
14251469
nw=$(echo $ar1|wc -w)
14261470
ar1=$(echo $ar1|cut -d \ -f $nw)
14271471
#set -x
1428-
[ "${lang[$str]}" != "" ] && OPT="$OPT -metadata:s:$str language=${lang[$str]}"
1472+
[ "${lang[$str]}" != "" ] && OPT="$OPT -metadata:s:$stro language=${lang[$str]}"
14291473
[ "${streamo[$str]}" != "" ] && str=${streamo[$str]}
14301474
#exit
14311475
fi
@@ -1472,6 +1516,9 @@ analyze() {
14721516
"vp9")
14731517
set_vp9
14741518
;;
1519+
"av1")
1520+
set_av1
1521+
;;
14751522
*)
14761523
echo "-h264 $h264 wrong"
14771524
exit 8
@@ -1494,6 +1541,9 @@ analyze() {
14941541
"copy")
14951542
nix=
14961543
;;
1544+
"av1")
1545+
set_av1
1546+
;;
14971547
*)
14981548
echo "-hevc $hevc wrong"
14991549
exit 8
@@ -1700,6 +1750,7 @@ analyze() {
17001750
stro1=$(($stro1+1))
17011751
;;
17021752
"dvd_subtitle"|"subrip"|"ass")
1753+
[ "$OUTPUT" == "vdr" ] && continue
17031754
map="$map -map 0:$str"
17041755
subt="$subt -c:$stro copy"
17051756
stro1=$(($stro1+1))
@@ -1728,7 +1779,7 @@ transcode() {
17281779
#opt="-hide_banner $OPT_G $ffmpeg_i -map 0 -c copy $OPT $name.$fmt"
17291780
#opt="-hide_banner $OPT_G $ffmpeg_i -map 0 $video $audio $subt $OPT $name"
17301781
[ -e ffmetadata ] && ffmpeg_i="$ffmpeg_i -i ffmetadata"
1731-
opt="-hide_banner $OPT_G $HWACC $OPT_I $ffmpeg_i $map $video $audio $subt $OPT $name"
1782+
opt="-hide_banner $OPT_G $HWACC $OPT_I $ffmpeg_i $map $video $audio $subt $OPT $metal $name"
17321783
echo ffmpeg $opt >> $log_c
17331784
#exit
17341785
if [ "$quiet" == 1 ]
@@ -1742,6 +1793,11 @@ transcode() {
17421793
#ffprobe -hide_banner -i $name 2>> $log_c
17431794
ffprobe -hide_banner -i $name 2>$t
17441795
cat $t >> $log_c
1796+
#set -x
1797+
line=$(grep "Video:" $t)
1798+
fps1=${line%fps*}
1799+
nw=$(echo $fps1|wc -w)
1800+
fpso=$(echo $fps1|cut -d \ -f $nw)
17451801
}
17461802

17471803
log_conf() {
@@ -1818,6 +1874,7 @@ copy_vdr() {
18181874
analyze $ffmpeg_i
18191875
#OPT="$OPT -mpegts_flags system_b"
18201876
#OPT="$OPT -mpegts_flags latm"
1877+
OPT="$OPT -map_chapters -1"
18211878
transcode $dest/00001.ts
18221879
#if [ -e info ]
18231880
#then
@@ -1903,6 +1960,12 @@ copy_vdr() {
19031960
then
19041961
echo genindex
19051962
nice $vdr --genindex="./$dest"
1963+
[ "$fpso" == "" ] && fpso=$fps
1964+
li=$(ls -l $dest/index|cut -d ' ' -f 5)
1965+
fpso=$(grep ^F $dest/info|cut -d \ -f 2)
1966+
#si=$(($li/200*25/$fpso))
1967+
si=$(($li/8/$fpso))
1968+
#date -u -d @$si +"index %T" >> $log_c
19061969
else
19071970
echo $vdr "not found" >> $log_c
19081971
fi
@@ -2139,7 +2202,9 @@ sek=$(($ende-$start))
21392202
echo "===========================================================" >> $log_c
21402203
[ -e $vtc ] && mv $vtc $vtc.rdy
21412204
cp -p $log_c $t
2205+
grep "Video:" $t >> $log_c
21422206
grep "Duration:" $t >> $log_c
2207+
[ "$OUTPUT" == "vdr" ] && date -u -d @$si +"index %T" >> $log_c
21432208
echo "Alt" $oldsize >> $log_c
21442209
prz=$(($newsize*100/$oldsize))
21452210
echo "Neu" $newsize $prz"%" >> $log_c

0 commit comments

Comments
 (0)