Ergebnis 11 bis 17 von 17
-
14.06.2016, 00:09 #11
- Registriert seit
- 18.10.2013
- Ort
- BW
- Beiträge
- 1.523
- Thanks (gegeben)
- 917
- Thanks (bekommen)
- 698
- Total Downloaded
- 162,62 MB
- Total Downloaded
- 162,62 MB
Box 1:AX HD61 4k - ATV 7.3Box 2:Mut@nt HD51 4k- ATV 6.4Box 3:LG DS90QY SoundbarWeil du ZDF dabei aufgezählt hast, schau mal hier, das trifft es evtl.
Fussball-EM 2016: Live-Audiodeskription : ZDF mit Barrierefreiheit bei EM-Ubertragungen - ZDFsport.demfg tiopedro1958
-
Danke - 1 Thanks- bedankten sich
-
Advertising
-
14.06.2016, 14:10 #12Pike_BishopGast
Ja gut könnte jetzt bei manchen Sendungen zutreffen, aber bei dem was ich gestern getestet habe da war nix in der Richtung.
Aber egal ich muss mich nun entscheiden ob ich die 4te Tonspur einfach mit reinnehme beim Konvertieren oder eben nicht denn ändern kann ich das ja eh nicht
(was der Sender ausstrahlt is eben nun mal da).
Aber durch die dritte .mp2 Tonspur nun muss ich nen etwas anderen Weg suchen um die Spuren im Script zuverlässig unterscheiden zu können
(war halt bislang wo ich immer von höchstens zwei mp2 Tonspuren ausging sehr einfach).
Is klar warum das Muxen nicht klappt denn mit den bisherigen Variablen dazu also;
Code:AUDIOFILE_AC3="*.ac3" AUDIOFILE1="*[!\-02].mp2" AUDIOFILE2="*[\-02].mp2"
da könnte die Variabale AUDIOFILE1 sowohl die .mp2 als auch die 03.mp2 sein da versagt das Muxen dann.
Muss ich dann also anders lösen bei der Möglichkeit von drei mp2 Tonspuren
Grüsse
Biki3Geändert von Pike_Bishop (14.06.2016 um 14:17 Uhr)
-
14.06.2016, 17:43 #13Pike_BishopGast
Hi,
@alexanderplatz - is erledigt sollte nun auch mit 4 Tonspuren klappen, ich häng das Komplettpaket hier im Post an.
Hab bei HD Sendern gesehen da gibts doch auch tatsächlich welche die zwei AC3 Tonspuren beinhalten
jedoch seh ich da derzeit keinen Handlungsbedarf da ich selbiges bei SD Sendern nicht beobachten konnte (Script is ja nur für SD-Aufnahmen).
Sollte das jedoch auch mal bei SD Sendern der Fall sein so nehm ichs dann mit rein wenn diesbzg. jemand Probleme postet.
Was mir grade noch im Log aufgefallen ist ist diese Meldung bei mplex;
Code:**ERROR: [mplex] MUX STATUS: Frame data under-runs detected!
, jedoch kann ich aber trotz dieser Fehlermeldung keine Probleme in den fertigen Isos feststellen (klappt also eh alles soweit).
Wobei ich diese Fehlermeldung aber bislang nur bei Sendern mit den 4 Tonspuren gesehen habe (konkret bei zdf-neo).
Aber wie gesagt das .iso kann dennoch problemlos abgespielt werden hier.
Grüsse
Biki3
-
29.11.2020, 23:51 #14
- Registriert seit
- 11.02.2020
- Ort
- here and there
- Beiträge
- 2.424
- Thanks (gegeben)
- 641
- Thanks (bekommen)
- 1648
- Total Downloaded
- 0
- Total Downloaded
- 0
Box 1:Mutant HD2400Box 2:VU Ultimo 4KBox 3:Octagon SF8008Box 4:Gigablue Quad 4KBox 5:VDRHi,
Ich hab ja hier in der Script Section keinerlei Mod Rechte mehr, also kann ich da leider nix mehr editieren, deshalb aber folgendes.
Das Ganze bis hierher ist eigentlich obsolete (ich hab schon länger ein Plugin für diesen Job (macht aber auch nix anderes als ein Script aufzurufen, jedoch geht
das so viel bequemer, man muss nicht erst eine Aufnahme in nen bestimmten Ordner kopieren)).
Doch ist es aber so das dieses Plugin mit dem aufzurufenden Script (selbes gilt für die alten Scripte hier) nur auf Mipsel Boxen funktioniert
aus dem einfachen Grund da es das Programm projectx nur für die Mipsel Boxen gibt und projectx benötigt es aber um ne Aufnahme erstmal zu demuxen und fehlerzubereinigen.
Das also ist ein Grund warum das obsolete ist, der zweite Grund ist es macht sich doch eh keiner mehr die Mühe ne SD Aufnahme zu ner DVD zu wandeln
egal ob automatisch oder nicht (ich meine ich nehm ja selbst nun schon seit geraumer Zeit gar nix mehr von nem SD-Sender auf).
So, das war nur zur Info, damit keiner hier drüberstolpert und denkt die Scripts hier sind uneingeschränkt zu verwenden.
Mit dem Plugin selbst könnte man ja auch anderes tun denn es kann ja generell Scripte aufrufen, stellt sich nur die Frage was ?
Hab ja länger versucht da mit ffmpeg was brauchbares hinzubekommen in nem Script, jedoch kam da grade in Bezug auf DVD Erstellung von ner SD-Aufnahme bislang nix synchrones raus
, und somit pfeif ich nun auf das, denn wie gesagt SD interessiert mich selber nun nicht mehr wirklich).
Jedenfalls müsste mir da schon sehr fad werden damit ich das vielleicht mal neu aufgreifen würde.
Was mich immer noch reizen würde wäre wenn die Boxen mal so viel Power hätten das es sich lohnt (also in ner vertretbaren Zeit) an der Box mit dem Plugin ein Script zur HD Umwandlung (z.b: zu mkv)
zu verwirklichen, aber davon sind wir derzeit weit entfernt (das würde ewig dauern mit der derzeitigen Power der Boxen).
PLUGIN + SCRIPT ist im folgenden Link zu finden (wie in Post #1 erwähnt ist das nur für Mipsel Boxen);
Plugin and Script
Grüsse
PikeGeändert von Pike_Bishop (19.12.2020 um 00:50 Uhr)
-
30.11.2020, 07:33 #15
- Registriert seit
- 18.10.2013
- Ort
- BW
- Beiträge
- 1.523
- Thanks (gegeben)
- 917
- Thanks (bekommen)
- 698
- Total Downloaded
- 162,62 MB
- Total Downloaded
- 162,62 MB
Box 1:AX HD61 4k - ATV 7.3Box 2:Mut@nt HD51 4k- ATV 6.4Box 3:LG DS90QY Soundbarhi Pike,
kannst ja mal den Codeschnipsel hier anschauen und für dich weiter zurechtfriemeln.
Code:#! /bin/bash for f in *.*; do if [ ${f: -4} == ".TS4" ] || [ ${f: -3} == ".TS" ] then ffmpeg -i "$f" -sn -codec copy "${f%.*}.mkv" # check if conversion was successful rc=$? if [ $rc == 0 ] then rm -f "$f" else ffmpeg -i "$f" -sn -codec copy "${f%.*}.mp4" rm -f "$f" ffmpeg -i "${f%.*}.mp4" -sn -codec copy "${f%.*.mkv}" rm -f "${f%.*}.mp4" fi fi done
Code:#! /bin/bash WORK_PATH="/media/hdd/movie" cd "${WORK_PATH}" for f in *.ts do if [ ! -e "$f.mp4" ] then ffmpeg -n -i "$f" -acodec copy -vcodec copy "$f.mp4" #rm "$f" fi done
Code:#!/usr/bin/python3.7 # -*- coding: utf-8 -*- import tkinter import tkinter.ttk from tkinter.filedialog import askopenfilename, asksaveasfilename import tkinter.messagebox import subprocess import fcntl import select import os import re class Application(tkinter.Tk): def __init__(self, parent): tkinter.Tk.__init__(self, parent) self.parent = parent self.vcodecs = [ 'libtheora', 'libvpx', 'libwebp', 'libx264', 'libx264rgb', 'libxvid', 'png', 'ProRes', ] self.acodecs = [ 'aac', 'ac3', 'ac3_fixed', 'libfaaclibfdk_aac', 'libmp3lame', 'libopencore-amrnb', 'libshine', 'libtwolame', 'libvo-aacenc', 'libvo-amrwbenc', 'libopus', 'libvorbis', 'libwavpack', 'wavpack', ] self.formats = [ 'null', 'mov', 'ismv', 'mp3', 'ogg', 'aiff', 'crc', 'framecrc', 'md5', 'framemd5', 'gif', 'hls', 'ico', 'image2', 'matroska', 'mpegts', ] self.pixfmts = [ 'yuv420p', 'yuv422p', 'yuv444p', 'yuv422', 'yuv410p', 'yuv411p', 'yuvj420p', 'yuvj422p', 'yuvj444p', 'rgb24', 'bgr24', 'rgba32', 'rgb565', 'rgb555', 'gray', 'monow', 'monob', 'pal8', ] self.presets = { 'H.264 720p': { 'vcodec': 'libx264', 'vb': '3500k', 'width': 1280, 'height': 720, 'qmax': 51, 'qmin': 11, 'pix_fmt': 'yuv420p', 'acodec': 'aac', 'ar': 44100, 'ab': '128k', 'format': 'mp4', 'extraOptions': '-movflags faststart', }, 'H.264 576p': { 'vcodec': 'libx264', 'vb': '2000k', 'width': 1024, 'height': 576, 'qmax': 51, 'qmin': 11, 'pix_fmt': 'yuv420p', 'acodec': 'aac', 'ar': 44100, 'ab': '128k', 'format': 'mp4', 'extraOptions': '-movflags faststart', }, 'H.264 360p': { 'vcodec': 'libx264', 'vb': '1000k', 'width': 640, 'height': 360, 'qmax': 51, 'qmin': 11, 'pix_fmt': 'yuv420p', 'acodec': 'aac', 'ar': 44100, 'ab': '128k', 'format': 'mp4', 'extraOptions': '-movflags faststart -maxrate 1500k -bufsize 3000k', }, 'WebM 720p': { 'vcodec': 'libvpx', 'vb': '3500k', 'width': 1280, 'height': 720, 'qmax': 51, 'qmin': 11, 'pix_fmt': 'yuv420p', 'acodec': 'libvorbis', 'ar': 44100, 'ab': '128k', 'format': 'webm', 'extraOptions': '-quality good', }, 'WebM 576p': { 'vcodec': 'libvpx', 'vb': '2000k', 'width': 1024, 'height': 576, 'qmax': 51, 'qmin': 11, 'pix_fmt': 'yuv420p', 'acodec': 'libvorbis', 'ar': 44100, 'ab': '128k', 'format': 'webm', 'extraOptions': '-quality good', }, 'WebM 360p': { 'vcodec': 'libvpx', 'vb': '1500k', 'width': 640, 'height': 360, 'qmax': 51, 'qmin': 11, 'pix_fmt': 'yuv420p', 'acodec': 'libvorbis', 'ar': 44100, 'ab': '128k', 'format': 'webm', 'extraOptions': '-quality good', }, } self.initialize() self.inputFiles = [] def initialize(self): # width = 800 # height = 600 # xoffset = (self.winfo_screenwidth()-width)/2 # yoffset = (self.winfo_screenheight()-height)/2 # print "%dx%d%+d%+d" % (width, height, xoffset, yoffset) # self.geometry("%dx%d%+d%+d" % (width, height, xoffset, yoffset)) self.grid_columnconfigure(0, weight=1) self.resizable(True, True) self.grid() self.widgets() def widgets(self): # Source frame source = tkinter.LabelFrame(self, text='Source file') source.grid( row=0, columnspan=2, sticky='WE', padx=5, pady=5, ipadx=5, ipady=5, ) inputFileLbl = tkinter.Label(source, text='Select File:') inputFileLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2) self.inputFileVar = tkinter.StringVar() inputFileTxt = tkinter.Entry(source, textvariable=self.inputFileVar, width='50') inputFileTxt.grid(row=0, column=1, sticky='WE', pady=3) inputFileBtn = tkinter.Button(source, text='Browse ...', command=self.OnInputBrowseClick) inputFileBtn.grid(row=0, column=2, sticky='W', padx=5, pady=2) # Output frame output = tkinter.LabelFrame(self, text='Output details') output.grid( row=1, columnspan=2, sticky='WE', padx=5, pady=5, ipadx=5, ipady=5, ) outputFileLbl = tkinter.Label(output, text='Save File to:') outputFileLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2) self.outputFileVar = tkinter.StringVar() outputFileTxt = tkinter.Entry(output, textvariable=self.outputFileVar, width='50') outputFileTxt.grid(row=0, column=1, sticky='WE', pady=3) outputFileBtn = tkinter.Button(output, text='Browse ...', command=self.OnOutputBrowseClick) outputFileBtn.grid(row=0, column=2, sticky='W', padx=5, pady=2) # Preset preset = tkinter.LabelFrame(self, text='Preset') preset.grid( row=2, columnspan=2, sticky='WE', padx=5, pady=5, ipadx=5, ipady=5, ) # presets list presetsLbl = tkinter.Label(preset, text='Use a preset') presetsLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2) presets = [] for (presetName, presetOptions) in self.presets.items(): presets.append(presetName) self.presetsVar = tkinter.StringVar() self.presetsVar.trace('w', self.OnPresetSelected) self.presetsList = tkinter.OptionMenu(preset, self.presetsVar, *presets) self.presetsList.grid(row=0, column=1, sticky='w', padx=5, pady=2) # Video options video = tkinter.LabelFrame(self, text='Video options') video.grid( row=3, column=0, sticky='NWES', padx=5, pady=5, ipadx=5, ipady=5, ) # video codec vcodecLbl = tkinter.Label(video, text='Video codec') vcodecLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2) self.vcodecVar = tkinter.StringVar() self.vcodecList = tkinter.OptionMenu(video, self.vcodecVar, *self.vcodecs) self.vcodecList.grid(row=0, column=1, sticky='w', padx=5, pady=2) # Video bitrate vbLbl = tkinter.Label(video, text='Video bitrate') vbLbl.grid(row=1, column=0, sticky='E', padx=5, pady=2) self.vbVar = tkinter.StringVar() self.vbVar.set(0) self.vb = tkinter.Entry(video, textvariable=self.vbVar) self.vb.grid(row=1, column=1, sticky='W', padx=5, pady=2) # Video width widthLbl = tkinter.Label(video, text='Video width') widthLbl.grid(row=2, column=0, sticky='E', padx=5, pady=2) self.widthVar = tkinter.IntVar() self.width = tkinter.Entry(video, textvariable=self.widthVar) self.width.grid(row=2, column=1, sticky='W', padx=5, pady=2) # Video height heightLbl = tkinter.Label(video, text='Video height') heightLbl.grid(row=3, column=0, sticky='E', padx=5, pady=2) self.heightVar = tkinter.IntVar() self.height = tkinter.Entry(video, textvariable=self.heightVar) self.height.grid(row=3, column=1, sticky='W', padx=5, pady=2) # pixel format pixfmtLbl = tkinter.Label(video, text='Pixel format') pixfmtLbl.grid(row=4, column=0, sticky='E', padx=5, pady=2) self.pixfmtVar = tkinter.StringVar() self.pixfmtList = tkinter.OptionMenu(video, self.pixfmtVar, *self.pixfmts) self.pixfmtList.grid(row=4, column=1, sticky='W', padx=5, pady=2) # frame rate fpsLbl = tkinter.Label(video, text='Frame rate') fpsLbl.grid(row=5, column=0, sticky='E', padx=5, pady=2) self.fpsVar = tkinter.IntVar() self.fps = tkinter.Entry(video, textvariable=self.fpsVar) self.fps.grid(row=5, column=1, sticky='W', padx=5, pady=2) # min quality self.qmin = tkinter.Scale(video, from_=-1, to=69, orient=tkinter.HORIZONTAL, label='Minimum quality') self.qmin.grid( row=6, column=0, columnspan=2, sticky='WE', padx=5, pady=2, ) self.qmin.set(2) # max quality self.qmax = tkinter.Scale(video, from_=-1, to=1024, orient=tkinter.HORIZONTAL, label='Maximum quality') self.qmax.grid( row=7, column=0, columnspan=2, sticky='WE', padx=5, pady=2, ) self.qmax.set(31) # Audio options audio = tkinter.LabelFrame(self, text='Audio options') audio.grid( row=3, column=1, sticky='NWES', padx=5, pady=5, ipadx=5, ipady=5, ) # audio codec vcodecLbl = tkinter.Label(audio, text='Audio codec') vcodecLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2) self.acodecVar = tkinter.StringVar() self.acodecList = tkinter.OptionMenu(audio, self.acodecVar, *self.acodecs) self.acodecList.grid(row=0, column=1, sticky='W', padx=5, pady=2) # Audio frequency arLbl = tkinter.Label(audio, text='Audio frequency') arLbl.grid(row=1, column=0, sticky='E', padx=5, pady=2) self.arVar = tkinter.IntVar() self.ar = tkinter.Entry(audio, textvariable=self.arVar) self.ar.grid(row=1, column=1, sticky='W', pady=2) # Audio bitrate abLbl = tkinter.Label(audio, text='Audio bitrate') abLbl.grid(row=2, column=0, sticky='E', padx=5, pady=2) self.abVar = tkinter.StringVar() self.abVar.set(0) self.ab = tkinter.Entry(audio, textvariable=self.abVar) self.ab.grid(row=2, column=1, sticky='W', padx=5, pady=2) # Options options = tkinter.LabelFrame(self, text='Options') options.grid( row=4, columnspan=2, sticky='WE', padx=5, pady=5, ipadx=5, ipady=5, ) # Format formatLbl = tkinter.Label(options, text='Format') formatLbl.grid(row=0, column=0, sticky='E', padx=5, pady=2) self.formatVar = tkinter.StringVar() self.formatList = tkinter.OptionMenu(options, self.formatVar, *self.formats) self.formatList.grid(row=0, column=1, sticky='W', padx=5, pady=2) # Format options extraOptionsLbl = tkinter.Label(options, text='Extra options') extraOptionsLbl.grid(row=1, column=0, sticky='E', padx=5, pady=2) self.extraOptionsVar = tkinter.StringVar() extraOptionsTxt = tkinter.Entry(options, textvariable=self.extraOptionsVar, width='65') extraOptionsTxt.grid(row=1, column=1, sticky='WE', pady=3) # Encode button encodeButton = tkinter.Button(self, text='Encode', command=self.OnEncodeClick) encodeButton.grid(row=5, column=0, sticky='NWES', padx=5, pady=2) # Progress bar self.progress = tkinter.ttk.Progressbar(self, orient='horizontal', mode='determinate') self.progress.grid(row=5, column=1, sticky='WE', padx=5, pady=3) def OnInputBrowseClick(self): self.inputFiles = askopenfilename(multiple=True) self.inputFileVar.set(self.inputFiles) def OnOutputBrowseClick(self): options = {} options['parent'] = self inputFilename = self.inputFileVar.get() if inputFilename: options['initialfile'] = inputFilename self.outputFile = asksaveasfilename() self.outputFileVar.set(self.outputFile) def OnPresetSelected(self, *argv): preset = self.presetsVar.get() if self.presets[preset]: preset = self.presets[preset] self.vcodecVar.set(preset['vcodec']) self.vbVar.set(preset['vb']) self.widthVar.set(preset['width']) self.heightVar.set(preset['height']) self.qmax.set(preset['qmax']) self.qmin.set(preset['qmin']) self.pixfmtVar.set(preset['pix_fmt']) self.acodecVar.set(preset['acodec']) self.arVar.set(preset['ar']) self.abVar.set(preset['ab']) self.formatVar.set(preset['format']) self.extraOptionsVar.set(preset['extraOptions']) def OnEncodeClick(self): if self.inputFiles: files = self.splitlist(self.inputFiles) for filename in files: self.encodeFile(filename) else: tkinter.messagebox.showwarning('No source selected', 'You must define at least one file to encode') def encodeFile(self, filename): output = self.outputFileVar.get() format = self.formatVar.get() vcodec = self.vcodecVar.get() vb = self.vbVar.get() fps = self.fpsVar.get() qmax = self.qmax.get() qmin = self.qmin.get() pixfmt = self.pixfmtVar.get() width = self.widthVar.get() height = self.heightVar.get() acodec = self.acodecVar.get() ar = self.arVar.get() ab = self.abVar.get() extraOptions = self.extraOptionsVar.get() cmd = 'ffmpeg -i {0} -y {1} -f {2}'.format(filename, output, format) video = \ '-vcodec {0} -vb {1} -qmax {2} -qmin {3} -pix_fmt {4}'.format(vcodec, vb, qmax, qmin, pixfmt) if fps: video += ' -r {}'.format(fps) scale = \ '-vf "scale=iw*min({0}/iw\,{1}/ih):ih*min({0}/iw\,{1}/ih),pad={0}:{1}:({0}-iw)/2:({1}-ih)/2"'.format(width, height) audio = '-acodec {0} -ar {1} -ab {2}'.format(acodec, ar, ab) options = '-strict experimental -threads 0' + ' ' + extraOptions cmd = cmd + ' ' + video + ' ' + scale + ' ' + audio + ' ' \ + options # print cmd cmd = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE) fcntl.fcntl(cmd.stderr.fileno(), fcntl.F_SETFL, fcntl.fcntl(cmd.stderr.fileno(), fcntl.F_GETFL) | os.O_NONBLOCK) duration = None header = '' progress_regex = re.compile("frame=.*time=([0-9\:\.]+)", flags=re.IGNORECASE) header_received = False while True: progressline = select.select([cmd.stderr.fileno()], [], [])[0] if progressline: line = cmd.stderr.read() if line == '': self.complete_callback() break progress_match = progress_regex.match(line) if progress_match: if not header_received: header_received = True if re.search(".*command\snot\sfound", header, flags=re.IGNORECASE): tkinter.messagebox.showerror('Command error', 'Command not found') if re.search('Unknown format', header, flags=re.IGNORECASE): tkinter.messagebox.showerror('Unknown format', 'Unknown format') if re.search("Duration: N\/A", header, flags=re.IGNORECASE | re.MULTILINE): tkinter.messagebox.showerror('Unreadable file', 'Unreadable file') raw_duration = \ re.search("Duration:\s*([0-9\:\.]+),", header) if raw_duration: units = raw_duration.group(1).split(':') duration = int(units[0]) * 60 * 60 * 1000 \ + int(units[1]) * 60 * 1000 \ + int(float(units[2]) * 1000) if duration: units = progress_match.group(1).split(':') progress = int(units[0]) * 60 * 60 * 1000 \ + int(units[1]) * 60 * 1000 \ + int(float(units[2]) * 1000) self.progress_callback(progress, duration) else: header += line def progress_callback(self, progress, duration): # percent = float(float(progress) / float(duration)) * 100 # print "{0}%".format(int(percent)) self.progress['maximum'] = duration self.progress['value'] = progress self.progress.update() def complete_callback(self): tkinter.messagebox.showinfo('Encoding complete', 'Encoding complete' ) def main(): app = Application(None) app.title('FFmpeg') app.mainloop() if __name__ == '__main__': main()
Code:#!/usr/bin/env python import os import re import sys import glob import subprocess from optparse import OptionParser def help(): head, tail = os.path.split(sys.argv[0]) print "Help:\n " + tail + " <folder> <src_fmt> <dst_fmt>\n for example :" + sys.argv[0] + " ./ aac mp3" def Convert_Audio(src_fmt, dst_fmt): all_src_file = sorted(glob.glob("*.*")) file_patten = "[a-zA-Z0-9_]*." + src_fmt file_patten_regex = re.compile(file_patten) for file in all_src_file: lower_file_name = file.lower() result = file_patten_regex.match(lower_file_name) if (result): src_file_info = file.split(".") file_name = src_file_info[0] print " convert " + file + " to " + file_name + "." + dst_fmt cmd = "ffmpeg -i " + file + " " + file_name + "." + dst_fmt print cmd os.system(cmd) def Convert_AV(src_fmt, dst_fmt): all_src_file = sorted(glob.glob("*.*")) file_patten = r"[a-zA-Z0-9_]*." + src_fmt file_patten_regex = re.compile(file_patten) for file in all_src_file: lower_file_name = file.lower() result = file_patten_regex.match(lower_file_name) if (result): src_file_info = file.split(".") file_name = src_file_info[0] print " convert " + file + " to " + file_name + "." + dst_fmt cmd = "ffmpeg -i " + file + " -acodec copy -vcodec copy -copytb 1 -copyts " + file_name + "." + dst_fmt os.system((cmd)) def Convert(folder, src_fmt, dst_fmt): child_env = os.environ.copy() if not os.path.isdir(folder): print "Folder: " + folder + " does not exist" return os.chdir(folder) if dst_fmt in ["aac", "mp3", "wav", "m4a"]: Convert_Audio(src_fmt, dst_fmt) else: Convert_AV(src_fmt, dst_fmt) if __name__ == "__main__": if len(sys.argv) != 4: help() sys.exit(0) folder = sys.argv[1] src_fmt = sys.argv[2] dst_fmt = sys.argv[3] print "convert from %s to %s" % (src_fmt, dst_fmt) Convert(folder, src_fmt, dst_fmt)
Ist wohl dem eingebauten eserviceHisilicon geschuldet.
Jetzt kannst über Weihnachten die Zeit nutzen und baust uns ein schönes Plugin.Geändert von tiopedro1958 (30.11.2020 um 08:05 Uhr)
mfg tiopedro1958
-
30.11.2020, 08:59 #16
- Registriert seit
- 18.10.2013
- Ort
- BW
- Beiträge
- 1.523
- Thanks (gegeben)
- 917
- Thanks (bekommen)
- 698
- Total Downloaded
- 162,62 MB
- Total Downloaded
- 162,62 MB
Box 1:AX HD61 4k - ATV 7.3Box 2:Mut@nt HD51 4k- ATV 6.4Box 3:LG DS90QY SoundbarOder du schaust dir das autocut plugin (Google) mal näher an.
mfg tiopedro1958
-
19.12.2020, 00:04 #17
- Registriert seit
- 11.02.2020
- Ort
- here and there
- Beiträge
- 2.424
- Thanks (gegeben)
- 641
- Thanks (bekommen)
- 1648
- Total Downloaded
- 0
- Total Downloaded
- 0
Box 1:Mutant HD2400Box 2:VU Ultimo 4KBox 3:Octagon SF8008Box 4:Gigablue Quad 4KBox 5:VDRHi,
Hier also noch abschliessend das Komplett Paket (Plugin + Script) um ne SD-Aufnahme zu ner DVD.iso auf ner MipselBox zu wandeln.
Was ist zu tun damit das läuft ?
1.) Das Paket "ScriptOnRec_Mipsel_complete_package.zip" hier im Post downloaden, und am PC entpacken.
2.) Der komplette Ordner "ScriptOnRec" in dem Paket gehört an der Box nach "/usr/lib/enigma2/python/Plugins/Extensions" (kann per FTP (Filezilla) dorthin kopiert werden).
3.) Die Datei "projectx" gehört an der Box nach "/usr/bin".
4.) Die Datei "projectx.ini" gehört an der Box nach "/home/root"
5.) Folgenden Befehl in telnet eintippen;
Code:chmod 755 /usr/lib/enigma2/python/Plugins/Extensions/ScriptOnRec/script1/*.sh/
Ich habe alle Scripts die nicht benötigt werden entfernt es gibt also nur noch ein Script und zwar das im Verzeichnis "/usr/lib/enigma2/python/Plugins/Extensions/ScriptOnRec/script1"
Dies ist das Script welches für die Konvertierung von SD-Aufnahmen zu ner DVD.iso zuständig ist, es nennt sich "ts2dvd_with_projectx.sh".
Wie funktioniert das nun ?
Einfach die gewünschte SD-Aufnahme welche zu DVD.iso gewandelt werden soll in der Filmliste markieren, jetzt die Menü Taste drücken und in diesem Menü
nun den Eintrag "ScriptOnRec" bzw. "Script auf Aufnahme..." suchen,
und per ok Taste hinein wechseln, hier nun einfach das Script "ts2dvd_with_projectx.sh" (wird wohl der zweite Eintrag von oben sein) anwählen und per ok Taste starten.
Der Rest geht vollautomatisch - die fertige DVD.iso landet dann in "/media/hdd//movie/_Converted/video/ts2dvd"
Wer da nen anderen Pfad braucht muss das Script in den Zeilen 35 - 37 dahingehend anpassen (nur mit nem Linuxtauglichen Editor wie z.b: Notepad++).
Der ganze Vorgang dauert nur einige Minuten.
Und die fertigen DVD.isos sollten in dem Fall absolut synchron sein, da hier ja projectx zum Demuxen verwendet wird.
Es ist möglich das das Script beim ersten Versuch abbricht, aber nur falls die bash nicht bereits installiert ist.
Denn in dem Fall installiert das Script die bash nach, man muss das (Plugin) bzw. das Script darin danach nur einmalig erneut starten, danach sollte es immer funktionieren.
Nach dem Start des Scripts werden erstmal alle Fenster geschlossen, und notwendige Meldungen werden extra am OSD (TV) ausgegeben wie z.b: die Startmeldung die ein paar Sekunden nachdem
die Fenster geschlossen wurden erscheint, oder die Endmeldung wenn die Umwandlung abgeschlossen wurde.
Es gibt auch ein Logfile, das liegt unter /tmp an der Box und nennt sich "ts2dvd.log".
Falls benötigte weitere Programme fehlen wie die mjpegtools, dvdauthor, oder geniosimage werden die vom Script selbst nachinstalliert, auch
wenn benötigte Verzeichnisse fehlen werden die vom Script selbst erstellt.
Mehr gibts dazu nicht zu sagen, ausser nur auf SD-Aufnahmen anwenden !
Sollte man es auf ne HD-Aufnahme anwenden passiert aber auch nix, das Script wird dann halt einfach abbrechen.
Grüsse
PikeGeändert von Pike_Bishop (04.04.2021 um 22:16 Uhr)
Lesezeichen