forked from hummypkg/webif
Centralise code for mp3 & mpg generation. Update to ffmpeg 2.8
This commit is contained in:
parent
40c54af482
commit
19a2eaf8db
@ -18,27 +18,12 @@ set base [file rootname $rfile]
|
||||
set shname [file tail $base]
|
||||
puts "Processing $shname"
|
||||
|
||||
set cmd [list ffmpeg -y -benchmark -v 0 -i "$rfile" -f mp3 -vn]
|
||||
set slow [[settings] audiomp3]
|
||||
|
||||
if {![[settings] audiomp3]} {
|
||||
lappend cmd -acodec copy
|
||||
}
|
||||
lappend cmd "${base}.mp3"
|
||||
|
||||
#puts "$cmd"
|
||||
set token [system startop -multiple mp3 $rfile]
|
||||
puts [exec {*}$cmd]
|
||||
puts [$ts mkmp3 $slow]
|
||||
system endop $token
|
||||
|
||||
if {[system pkginst id3v2]} {
|
||||
puts [exec /mod/bin/id3v2 \
|
||||
--song "[$ts get title]" \
|
||||
--comment "[$ts get synopsis]" \
|
||||
--album "[$ts get channel_name]" \
|
||||
--year "[clock format [$ts get start] -format {%Y}]" \
|
||||
"${base}.mp3"]
|
||||
}
|
||||
|
||||
set xtime [expr [expr [clock milliseconds] - $xstart] / 1000.0]
|
||||
puts "Time taken: $xtime"
|
||||
|
||||
|
@ -5,10 +5,6 @@ source /mod/webif/lib/setup
|
||||
|
||||
httpheader
|
||||
|
||||
if {[file exists /mod/bin/ffmpeg]} {
|
||||
set file [cgi_get file]
|
||||
puts [exec /mod/webif/lib/bin/ffmpeg -i $file]
|
||||
} else {
|
||||
puts "Install ffmpeg package for more information..."
|
||||
}
|
||||
set file [cgi_get file]
|
||||
puts [exec /mod/bin/ffprobe -hide_banner $file]
|
||||
|
||||
|
@ -13,7 +13,8 @@ foreach file [readdir $dir] {
|
||||
if {[file extension $file] ne ".mp3"} continue
|
||||
|
||||
if {[catch {
|
||||
set lines [exec ffprobe -v error -show_streams "$dir/$file"]
|
||||
set lines [exec ffprobe -hide_banner -v error \
|
||||
-show_streams "$dir/$file"]
|
||||
}]} continue
|
||||
|
||||
foreach line $lines {
|
||||
|
@ -14,15 +14,8 @@ set len [$ts duration 1]
|
||||
|
||||
set xstart [clock milliseconds]
|
||||
|
||||
set base [file rootname $rfile]
|
||||
set shname [file tail $base]
|
||||
puts "Processing $shname"
|
||||
|
||||
set token [system startop -multiple mpg $rfile]
|
||||
puts [exec /mod/bin/ffmpeg -y -benchmark -v 0 \
|
||||
-i $rfile \
|
||||
-map 0:0 -map 0:1 \
|
||||
-vcodec copy -acodec copy "${base}.mpg"]
|
||||
$ts mkmpg
|
||||
system endop $token
|
||||
|
||||
set xtime [expr [expr [clock milliseconds] - $xstart] / 1000.0]
|
||||
|
@ -17,11 +17,6 @@ proc ::mp3::dequeue {q ts} {
|
||||
return {"DEFER" "Not decrypted"}
|
||||
}
|
||||
|
||||
if {[$ts get definition] eq "HD"} {
|
||||
# Cannot extract a useful MP3 from a HD recording.
|
||||
return {"FAILED" "Cannot process high-definition recording"}
|
||||
}
|
||||
|
||||
if {[::auto::inuse $ts]} {
|
||||
return {"DEFER" "Recording in use"}
|
||||
}
|
||||
@ -38,34 +33,16 @@ proc ::mp3::dequeue {q ts} {
|
||||
log " MP3: $file" 0
|
||||
log " Converting... [$::auto::settings \
|
||||
audiomp3descr $mp3mode]" 0
|
||||
if {[catch {
|
||||
set cmd [list nice -n 19 \
|
||||
/mod/bin/ffmpeg -y -benchmark -v 0 -i "$file.ts" \
|
||||
-f mp3 -vn]
|
||||
if {!$mp3mode} { lappend cmd -acodec copy }
|
||||
lappend cmd "$tmp/mp3.mp3"
|
||||
foreach line [split [exec {*}$cmd] "\n"] {
|
||||
log [string trim $line] 0
|
||||
}
|
||||
} msg]} {
|
||||
if {[catch {set msg [$ts mkmp3 $mp3mode "$tmp/mp3"]} msg]} {
|
||||
system notify "$file - auto-mp3 - error $msg."
|
||||
system endop mp3
|
||||
return [list "FAILED" $msg]
|
||||
}
|
||||
|
||||
if {[system pkginst id3v2]} {
|
||||
catch {
|
||||
log [exec /mod/bin/id3v2 \
|
||||
--song "[$ts get title]" \
|
||||
--comment "[$ts get synopsis]" \
|
||||
--album "[$ts get channel_name]" \
|
||||
--year "[clock format [$ts get start] -format {%Y}]" \
|
||||
"$tmp/mp3.mp3"] 0
|
||||
}
|
||||
foreach line [split $msg "\n"] {
|
||||
log [string trim $line] 0
|
||||
}
|
||||
|
||||
# Move the MP3 into the local directory
|
||||
file rename $tmp/mp3.mp3 $file.mp3
|
||||
set summary [::auto::endclock [$ts size]]
|
||||
system endop mp3
|
||||
|
||||
|
@ -30,22 +30,17 @@ proc ::mpg::dequeue {q ts} {
|
||||
|
||||
log " MPG: $file" 0
|
||||
log " Converting..." 0
|
||||
if {[catch {
|
||||
foreach line [split \
|
||||
[exec nice -n 19 /mod/bin/ffmpeg -y -benchmark -v 0 \
|
||||
-i $file.ts \
|
||||
-map 0:0 -map 0:1 \
|
||||
-vcodec copy -acodec copy $tmp/mpg.mpg] "\n"] {
|
||||
log $line 0
|
||||
}
|
||||
} msg]} {
|
||||
system notify "$file - auto-mpg - error $msg."
|
||||
system endop mpg
|
||||
return [list "FAILED" $msg]
|
||||
}
|
||||
|
||||
# Move the MPG into the local directory
|
||||
file rename $tmp/mpg.mpg $file.mpg
|
||||
if {[catch {set msg [$ts mkmpg "$tmp/mpg"]} msg]} {
|
||||
system notify "$file - auto-mpg - error $msg."
|
||||
system endop mpg
|
||||
return [list "FAILED" $msg]
|
||||
}
|
||||
|
||||
foreach line [split $msg "\n"] {
|
||||
log [string trim $line] 0
|
||||
}
|
||||
|
||||
set summary [::auto::endclock [$ts size]]
|
||||
system endop mpg
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -x /mod/bin/ffprobe ]; then
|
||||
/mod/bin/ffprobe "$@" 2>&1 | sed '
|
||||
1,10d
|
||||
'
|
||||
else
|
||||
/mod/bin/ffmpeg "$@" 2>&1 | sed '
|
||||
1,8d
|
||||
$d
|
||||
'
|
||||
fi
|
||||
exit 0
|
||||
|
@ -364,9 +364,82 @@ ts method mkthm {{offset 0}} {
|
||||
exec /bin/echo -n " " >> $bfile.thm~
|
||||
file rename -force $bfile.thm~ $bfile.thm
|
||||
file tdelete $bfile.bmp
|
||||
$self setflag thumbnail
|
||||
return 1
|
||||
}
|
||||
|
||||
# From MontysEvilTwin
|
||||
# - https://hummy.tv/forum/threads/7787/page-2#post-106826
|
||||
# ffmpeg -i "File 1.ts" -c:a mp3 -b:a 128k "File 1.mp3"
|
||||
# ffmpeg -i "File 1.ts" -c:a copy "File 1.mp2"
|
||||
# ffmpeg -i "File 1.ts" -c:a copy "File 1.loas"
|
||||
ts method mkmp3 {{slow false} {tmp ""} {v 0} {br 128}} {
|
||||
set rfile [file rootname $file]
|
||||
|
||||
if {$slow} {
|
||||
set opts [list -c:a mp3 -b:a ${br}k]
|
||||
set ext mp3
|
||||
} else {
|
||||
set opts [list -c:a copy]
|
||||
if {$definition eq "HD"} {
|
||||
set ext loas
|
||||
} else {
|
||||
set ext mp2
|
||||
}
|
||||
}
|
||||
set cmd [list /mod/bin/ffmpeg \
|
||||
-y -benchmark -vn -v $v \
|
||||
-i $file {*}$opts \
|
||||
]
|
||||
|
||||
if {$tmp eq ""} {
|
||||
lappend cmd "${rfile}.$ext"
|
||||
} else {
|
||||
lappend cmd "$tmp.$ext"
|
||||
}
|
||||
|
||||
set output [exec {*}$cmd]
|
||||
|
||||
if {$tmp ne ""} {
|
||||
file rename "$tmp.$ext" "${rfile}.mp3"
|
||||
} elseif {$ext ne "mp3"} {
|
||||
file rename "${rfile}.$ext" "${rfile}.mp3"
|
||||
}
|
||||
|
||||
exec /mod/bin/id3v2 \
|
||||
--song $title \
|
||||
--comment $synopsis \
|
||||
--album $channel_name \
|
||||
--year "[clock format $start -format {%Y}]" \
|
||||
"${rfile}.mp3"
|
||||
|
||||
return $output
|
||||
}
|
||||
|
||||
ts method mkmpg {{tmp ""}} {
|
||||
set rfile [file rootname $file]
|
||||
|
||||
set cmd [list /mod/bin/ffmpeg \
|
||||
-y -benchmark -v 0 \
|
||||
-i $file \
|
||||
-map 0:0 -map 0:1 \
|
||||
-vcodec copy -acodec copy]
|
||||
|
||||
if {$tmp eq ""} {
|
||||
lappend cmd "${rfile}.mpg"
|
||||
} else {
|
||||
lappend cmd "$tmp.mpg"
|
||||
}
|
||||
|
||||
set output [exec {*}$cmd]
|
||||
|
||||
if {$tmp ne ""} {
|
||||
file rename "$tmp.mpg" "${rfile}.mpg"
|
||||
}
|
||||
|
||||
return $output
|
||||
}
|
||||
|
||||
proc {ts renamegroup} {from to} {
|
||||
global tsgroup
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user