h265 nutzen
This commit is contained in:
parent
3502c39827
commit
d74bf803a1
2 changed files with 41 additions and 14 deletions
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/local/bin/python
|
#!/usr/local/bin/python
|
||||||
|
|
||||||
# $Schlepperbande: src/tivomirror/tivomirror,v 1.68 2015/02/28 21:03:03 stb Exp $
|
# $Schlepperbande: src/tivomirror/tivomirror,v 1.69 2015/09/05 11:56:07 stb Exp $
|
||||||
#
|
#
|
||||||
# Stefans Script, um die Sendungen vom Tivo runterzuladen und in MPEG4
|
# Stefans Script, um die Sendungen vom Tivo runterzuladen und in MPEG4
|
||||||
# zu transkodieren.
|
# zu transkodieren.
|
||||||
|
@ -43,32 +43,44 @@ ignoreepisodetitle = False
|
||||||
arset = dict()
|
arset = dict()
|
||||||
|
|
||||||
includes = dict()
|
includes = dict()
|
||||||
|
includes['Anthony Bourdain Parts Unknown'] = 1
|
||||||
includes['Better Call Saul'] = 1
|
includes['Better Call Saul'] = 1
|
||||||
includes['Brooklyn Nine-Nine'] = 1
|
includes['Brooklyn Nine-Nine'] = 1
|
||||||
includes['Castle'] = 1
|
includes['Bull'] = 1
|
||||||
#includes['Conan'] = 1
|
includes['College Football'] = 1
|
||||||
|
includes['Conan'] = 1
|
||||||
|
includes["Dirk Gently's Holistic Detective Agency"] = 1
|
||||||
|
includes['The Expanse'] = 1
|
||||||
includes['Family Guy'] = 1
|
includes['Family Guy'] = 1
|
||||||
|
includes['Full Frontal With Samantha Bee'] = 1
|
||||||
includes['Hot in Cleveland'] = 1
|
includes['Hot in Cleveland'] = 1
|
||||||
includes["How It's Made"] = 1
|
includes["How It's Made"] = 1
|
||||||
includes["How Do They Do It?"] = 1
|
includes["How Do They Do It?"] = 1
|
||||||
includes["How We Got to Now With Steven Johnson"] = 1
|
includes["How We Got to Now With Steven Johnson"] = 1
|
||||||
includes['Inside Amy Schumer'] = 1
|
includes['Inside Amy Schumer'] = 1
|
||||||
|
includes['Join or Die With Craig Ferguson'] = 1
|
||||||
includes['Last Week Tonight With John Oliver'] = 1
|
includes['Last Week Tonight With John Oliver'] = 1
|
||||||
includes['Late Show With David Letterman'] = 1
|
|
||||||
includes['Louie'] = 1
|
includes['Louie'] = 1
|
||||||
includes['Mad Men'] = 1
|
includes['Mad Men'] = 1
|
||||||
includes['Modern Family'] = 1
|
includes['Modern Family'] = 1
|
||||||
includes['MythBusters'] = 1
|
includes['MythBusters'] = 1
|
||||||
|
includes['MythBusters: The Search'] = 1
|
||||||
includes['NCIS'] = 1
|
includes['NCIS'] = 1
|
||||||
includes['NFL Football'] = 1
|
includes['NCIS: New Orleans'] = 1
|
||||||
|
#includes['NFL Football'] = 1
|
||||||
includes['Person of Interest'] = 1
|
includes['Person of Interest'] = 1
|
||||||
|
includes['Saturday Night Live'] = 1
|
||||||
includes['Sesame Street'] = 1
|
includes['Sesame Street'] = 1
|
||||||
includes["Somebody's Gotta Do It With Mike Rowe"] = 1
|
includes["Somebody's Gotta Do It With Mike Rowe"] = 1
|
||||||
includes['StarTalk'] = 1
|
includes['StarTalk'] = 1
|
||||||
includes['The Big Bang Theory'] = 1
|
includes['The Big Bang Theory'] = 1
|
||||||
includes['The Good Wife'] = 1
|
includes['The Daily Show With Trevor Noah'] = 1
|
||||||
|
includes['The Late Show With Stephen Colbert'] = 1
|
||||||
|
#includes['The Late Late Show With James Corden'] = 1
|
||||||
|
includes['The Muppets'] = 1
|
||||||
|
includes['The X-Files'] = 1
|
||||||
#includes['The Tonight Show Starring Jimmy Fallon'] = 1
|
#includes['The Tonight Show Starring Jimmy Fallon'] = 1
|
||||||
includes['2015 National Championship'] = 1
|
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('tivomirror')
|
logger = logging.getLogger('tivomirror')
|
||||||
|
@ -118,6 +130,9 @@ def timeout(seconds=10, error_message=os.strerror(errno.ETIMEDOUT)):
|
||||||
def trimDescription(desc):
|
def trimDescription(desc):
|
||||||
desc = desc.strip()
|
desc = desc.strip()
|
||||||
i = desc.rfind(". Copyright Tribune Media Services, Inc.");
|
i = desc.rfind(". Copyright Tribune Media Services, Inc.");
|
||||||
|
if i > 0:
|
||||||
|
desc = desc[0:i]
|
||||||
|
i = desc.rfind(". * Copyright Rovi, Inc");
|
||||||
if i > 0:
|
if i > 0:
|
||||||
desc = desc[0:i]
|
desc = desc[0:i]
|
||||||
if len(desc) > 80:
|
if len(desc) > 80:
|
||||||
|
@ -474,9 +489,8 @@ def mirror(toc, downloaddb, one=False):
|
||||||
|
|
||||||
|
|
||||||
def download_episode(toc, downloaddb, episode):
|
def download_episode(toc, downloaddb, episode):
|
||||||
items = toc.dom.getElementsByTagName("Item")
|
items = toc.getItems()
|
||||||
for node in items:
|
for item in items:
|
||||||
item = TivoItem(node)
|
|
||||||
if item.title == episode or item.name == episode or item.episode == episode:
|
if item.title == episode or item.name == episode or item.episode == episode:
|
||||||
download_one(item, downloaddb)
|
download_one(item, downloaddb)
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,11 @@ import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
format = 5
|
||||||
|
|
||||||
|
|
||||||
def transcode(src, tgt, fmt):
|
def transcode(src, tgt, fmt):
|
||||||
|
global format
|
||||||
transcode_opts = [ "ffmpeg" ];
|
transcode_opts = [ "ffmpeg" ];
|
||||||
#transcode_opts = [ "ffmpeg-devel" ];
|
#transcode_opts = [ "ffmpeg-devel" ];
|
||||||
#transcode_opts.extend(["-t", "240"]) # testing only
|
#transcode_opts.extend(["-t", "240"]) # testing only
|
||||||
|
@ -17,9 +21,11 @@ def transcode(src, tgt, fmt):
|
||||||
transcode_opts.extend(["-y", "-deinterlace"])
|
transcode_opts.extend(["-y", "-deinterlace"])
|
||||||
#transcode_opts.extend(["-ac", "2", "-ab", "128k"])
|
#transcode_opts.extend(["-ac", "2", "-ab", "128k"])
|
||||||
transcode_opts.extend(["-c:a", "libfdk_aac", "-ab", "192k"])
|
transcode_opts.extend(["-c:a", "libfdk_aac", "-ab", "192k"])
|
||||||
|
if format == 5:
|
||||||
transcode_opts.extend(["-vcodec", "libx265", "-x265-params", "crf=28"])
|
transcode_opts.extend(["-vcodec", "libx265", "-x265-params", "crf=28"])
|
||||||
#transcode_opts.extend(["-vcodec", "libx264"])
|
else:
|
||||||
#transcode_opts.extend(["-tune", "film", "-profile", "main"])
|
transcode_opts.extend(["-vcodec", "libx264"])
|
||||||
|
transcode_opts.extend(["-tune", "film", "-profile", "main"])
|
||||||
if fmt == "hd":
|
if fmt == "hd":
|
||||||
transcode_opts.extend(["-s", "1280x720"])
|
transcode_opts.extend(["-s", "1280x720"])
|
||||||
#transcode_opts.extend(["-b:v", "3000k"])
|
#transcode_opts.extend(["-b:v", "3000k"])
|
||||||
|
@ -59,6 +65,7 @@ def getInfo(src):
|
||||||
for l in err.split("\n"):
|
for l in err.split("\n"):
|
||||||
if l.find("Stream #") >=0:
|
if l.find("Stream #") >=0:
|
||||||
w = l.split()
|
w = l.split()
|
||||||
|
print w
|
||||||
if w[2] == "Audio:":
|
if w[2] == "Audio:":
|
||||||
c.extend(["a"])
|
c.extend(["a"])
|
||||||
elif w[2] == "Video:":
|
elif w[2] == "Video:":
|
||||||
|
@ -75,20 +82,26 @@ class Usage(Exception):
|
||||||
|
|
||||||
|
|
||||||
def main(argv=None):
|
def main(argv=None):
|
||||||
|
global format
|
||||||
if argv is None:
|
if argv is None:
|
||||||
argv = sys.argv
|
argv = sys.argv
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(argv[1:], "hi:", ["help"])
|
opts, args = getopt.getopt(argv[1:], "hi:45", ["help"])
|
||||||
except getopt.error, msg:
|
except getopt.error, msg:
|
||||||
raise Usage(msg)
|
raise Usage(msg)
|
||||||
for (o, v) in opts:
|
for (o, v) in opts:
|
||||||
|
print "%s" % (o)
|
||||||
if o == "-h":
|
if o == "-h":
|
||||||
print >>sys.stderr, "help text"
|
print >>sys.stderr, "help text"
|
||||||
return 0
|
return 0
|
||||||
if o == "-i":
|
if o == "-i":
|
||||||
print getInfo(v)
|
print getInfo(v)
|
||||||
return 0
|
return 0
|
||||||
|
if o == "-4":
|
||||||
|
format = 4
|
||||||
|
if o == "-5":
|
||||||
|
format = 5
|
||||||
if len(args) != 3:
|
if len(args) != 3:
|
||||||
raise Usage("wrong number of arguments")
|
raise Usage("wrong number of arguments")
|
||||||
transcode(args[1], args[2], args[0])
|
transcode(args[1], args[2], args[0])
|
||||||
|
|
Loading…
Reference in a new issue