Я разрабатываю базовое приложение, которое может загружать видео на YouTube. На протяжении всего развития у меня было несколько причуд, включая проблемы с форматами.Скрыть окно консоли ffmpeg при запуске приложения YoutubeDL в GUI
Я решил использовать надежный надежный формат синтаксиса, который youtube-dl будет с радостью загружать для меня практически в любом случае.
Часть моих YoutubeDL вариантов выглядеть следующим образом:
self.ydl_opts = {
'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best',
'quiet': True,
'progress_hooks': [self.ydl_progress],
'outtmpl': None
}
outtmpl вставлена позже, когда папка вывода выбирается пользователем.
Поскольку я использую эту строку формата, youtube-dl использует ffmpeg для объединения (?) Аудио и видео, если они загружаются отдельно.
Когда он это делает, он открывает очень раздражающие окна консоли, которые захватывают фокус и прерывают другие вещи, которые я могу делать во время загрузки видео.
Мой вопрос в том, как я могу предотвратить ffmpeg или youtube-dl от создания тех окон консоли, которые появляются, ака. как я могу скрыть их?
EDIT:
я предоставлю голые кости скрипт, который воспроизводит проблему: (?)
from __future__ import unicode_literals
from PyQt4 import QtGui, QtCore
import youtube_dl, sys
def on_progress(info):
print info.get("_percent_str", "Finished")
ydl_opts = {
'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best',
'progress_hooks': [on_progress],
'quiet': True,
'outtmpl': "C:/Users/Raketa/Desktop/%(title)s.%(ext)s"
}
ydl = youtube_dl.YoutubeDL(ydl_opts)
class DownloadThread(QtCore.QThread):
def __init__(self):
super(DownloadThread, self).__init__()
self.start()
def __del__(self):
self.wait()
def run(self):
print "Download start"
ydl.download(["https://www.youtube.com/watch?v=uy7BiiOI_No"])
print "Download end"
class Application(QtGui.QMainWindow):
def __init__(self):
super(Application, self).__init__()
self.dl_thread = DownloadThread()
def run(self):
self.show()
def main():
master = QtGui.QApplication(sys.argv)
app = Application()
app.run()
sys.exit(master.exec_())
if __name__ == '__main__':
main()
2 консоли появляются в начале каждой загрузки и 1 более длительная консоль появляется, когда оба видео и аудио. При загрузке более длинных видео последняя консоль становится невыносимой.
Можно ли избавиться от них?
Когда вы говорите «файл», вы имеете в виду мой файл кода или какой-либо файл кода youtube-dl? –
Кстати, переименование моего * .py-файла в * .pyw не скрывало окон консоли ffmpeg. Я не уверен, как поможет запуск кода в консоли. В принципе, youtube-dl использует ffmpeg (или aconv anyways) для чтения/записи/объединения аудио/видео файлов. Когда он запускает их, он открывает окна консоли, от которых я пытаюсь избавиться. –
Хорошо. Я верну свой компьютер к окнам, чтобы найти решение. Я попытаюсь дать решение в течение нескольких минут (20-30 минут). Тогда, я отредактирую свой пост :) –