2016-05-18 6 views
0

Ich möchte das tun, was der Titel sagtyoutube-dl-Download eine Minute pro alle 5 Minuten (auf einem Zucken Video, aber ich habe die lokale Datei zu gespeichert, wenn einfacher)

Dies ist ein ffmpeg Befehl zum Download ab einer bestimmten Zeit in einem Video, offline oder online.

ffmpeg -SS (Stop) -i (direkter Video-Link) -t (Startzeit) -c: v Kopie -c: eine Kopie (title.mp4)

Ich werde dies zu Download auf OSX. Es ist mir egal, was der Titel ist.

Ich denke, * ein bash-Befehl ist, die ich die Zeiten in diesem Befehl nach oben um einen bestimmten Betrag (300 Sekunden pro, um den Zähler für den Start und die Zeit wird in rohen Sekunden zu stoppen)

So ändern kann , Bash-Skript, das diesen Befehl ausführt, aber die Start- und Stoppzeiten schrittweise um 300 erhöht (das Stopptiming liegt bei 60+ Sekunden), Downloads, dann wird es wiederholt.

+0

Wollen Sie jede Minute in einer eigenen Datei? – Mulvya

+0

Entweder ist in Ordnung. Ich habe ehrlich gesagt nichts dagegen. Dieser Typ scheint es verstanden zu haben. – babadoctor

Antwort

2

hier ist es:

Inhalt youtube-dl:

#!/usr/bin/env bash 

# set start to 0, 300, 600... up to 72000 (20 hours) 
for start in `seq 0 300 72000`; do 

    # set the outfile name 
    file="$2.$start.60.mp4" 

    ffmpeg -ss $start -i "$1" -t 60 -c:v copy -c:a copy "$file" 

    # get the duration of the last outfile 
    last_duration=`ffprobe -i "$file" -show_entries format=duration -v quiet -of csv="p=0"` 
    # if last outfile's duration isn't greater than a second, delete it and stop 
    [[ ! "$last_duration" -gt 1 ]] && rm -f $file && exit 

done 

dann tun:

chmod +x youtube-dl 

Nutzung:

./youtube-dl "http://your/movie.flv" title 

ps: ich entdeckt, dass Ihr ffmpeg Befehl war ein wenig kaputt: es ist -t (duration), nicht -t (start time).

Refs:

ffmpeg usage (slhck, 2012)

ffprobe usage (ivan-neeson, 2014)

+1

Danke! :) Ich werde das jetzt testen. Wenn Sie Zeit haben, frage ich mich, wie schwer es wäre, ein Skript zu erstellen, mit dem ich einen Link eingeben kann, die genauen Zeiten, die ich von diesem Link/Video wollte, und es herunterladen ... Wie auch immer, Sie waren großartig Hilfe! : D – babadoctor

+0

Gern geschehen! Es ist definitiv möglich, auf dieser Basis ein Skript zu erstellen, mit dem Sie bestimmte Clipping-Zeiten bereitstellen können. es wäre einfacher als dieses Skript, da es nur die Zeile "ffmpeg" benötigt, plus eine neue Zeile, um die Dauer basierend auf der Stoppzeit zu berechnen - Startzeit z. mit 'expr' http://stackoverflow.com/questions/8385627/subtract-2-variables-in-bash. Beachten Sie auch, wie '$ 1' und' $ 2' automatisch auf die ersten und zweiten Parameter gesetzt werden, die Sie in die Befehlszeile eingeben, z. B. "http: //your/movie.flv" 'und' title'. Das gleiche gilt für $ 3, etc ... – webb

+1

Okay perfekt! Ich werde das auf meine Liste der Dinge setzen, die ich machen muss :) – babadoctor