Как мне сбросить все записи в плейлисте с помощью MPlayer?

1699
Aaron Digulla

Я могу воспроизвести все элементы в списке воспроизведения, используя

mplayer -playlist file.m3u 

но когда я сбрасываю поток с помощью

mplayer -dumpfile file.ts -dumpstream -playlist file.m3u 

file.tsбудет содержать только первую запись в списке воспроизведения M3U. Как я могу сказать, mplayerчтобы сбросить все?

0

1 ответ на вопрос

1
Aaron Digulla

Файл m3uили m3u8- это просто список ссылок (по одной на строку), смешанный с комментариями. Я использовал следующую маленькую программу на Python для загрузки всех частей плейлиста один за другим:

#!/usr/bin/env python3  import subprocess import os  def dump(playlist): urls = []  with open(playlist, 'r') as fh: for line in fh: if line[0] == '#': continue  urls.append(line.strip())  count = 1 for url in urls: dumpfile = 'part%04d.ts' % count count += 1  if os.path.exists(dumpfile): print('Skipping %s...' % dumpfile)  cmd = [ 'mplayer', '-dumpfile', dumpfile, '-dumpstream', url ]  print('%s -> %s' % (url, dumpfile)) rc = subprocess.call(cmd) if rc != 0: raise Exception('dump failed')  if __name__ == '__main__': import sys  playlist = sys.argv[1] dump(playlist) 

Если части представляют собой .tsфайлы MPEG («транспортный поток»), см. Вопрос, как их объединить: используйте кодек ffmpeg copy, чтобы объединить файлы * .ts в один файл mp4.

Для других типов файлов вам, вероятно, понадобятся инструменты. (см. здесь для mp3 )

Похожие вопросы