mirror of
https://github.com/soimort/you-get.git
synced 2025-03-13 11:24:02 +03:00
quick & dirty fix #61, default to use FFmpeg for merging flv files
This commit is contained in:
parent
b8087a8ad4
commit
00cd5b1bbc
@ -409,10 +409,20 @@ def download_urls(urls, title, ext, total_size, output_dir = '.', refer = None,
|
|||||||
print()
|
print()
|
||||||
return
|
return
|
||||||
if ext == 'flv':
|
if ext == 'flv':
|
||||||
|
try:
|
||||||
|
from .processor.ffmpeg import has_ffmpeg_installed
|
||||||
|
if has_ffmpeg_installed():
|
||||||
|
from .processor.ffmpeg import ffmpeg_concat_flv_to_mp4
|
||||||
|
ffmpeg_concat_flv_to_mp4(parts, os.path.join(output_dir, title + '.mp4'))
|
||||||
|
else:
|
||||||
from .processor.join_flv import concat_flv
|
from .processor.join_flv import concat_flv
|
||||||
concat_flv(parts, os.path.join(output_dir, title + '.flv'))
|
concat_flv(parts, os.path.join(output_dir, title + '.flv'))
|
||||||
|
except:
|
||||||
|
raise
|
||||||
|
else:
|
||||||
for part in parts:
|
for part in parts:
|
||||||
os.remove(part)
|
os.remove(part)
|
||||||
|
|
||||||
elif ext == 'mp4':
|
elif ext == 'mp4':
|
||||||
try:
|
try:
|
||||||
from .processor.join_mp4 import concat_mp4
|
from .processor.join_mp4 import concat_mp4
|
||||||
@ -428,6 +438,7 @@ def download_urls(urls, title, ext, total_size, output_dir = '.', refer = None,
|
|||||||
os.remove(part)
|
os.remove(part)
|
||||||
else:
|
else:
|
||||||
print('No ffmpeg is found. Merging aborted.')
|
print('No ffmpeg is found. Merging aborted.')
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("Can't merge %s files" % ext)
|
print("Can't merge %s files" % ext)
|
||||||
|
|
||||||
|
@ -60,3 +60,28 @@ def ffmpeg_concat_ts_to_mkv(files, output = 'output.mkv'):
|
|||||||
return False
|
return False
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def ffmpeg_concat_flv_to_mp4(files, output = 'output.mp4'):
|
||||||
|
for file in files:
|
||||||
|
if os.path.isfile(file):
|
||||||
|
params = ['ffmpeg', '-i']
|
||||||
|
params.append(file)
|
||||||
|
params += ['-map', '0', '-c', 'copy', '-f', 'mpegts', '-bsf:v', 'h264_mp4toannexb']
|
||||||
|
params.append(file + '.ts')
|
||||||
|
|
||||||
|
subprocess.call(params)
|
||||||
|
|
||||||
|
params = ['ffmpeg', '-i']
|
||||||
|
params.append('concat:')
|
||||||
|
for file in files:
|
||||||
|
f = file + '.ts'
|
||||||
|
if os.path.isfile(f):
|
||||||
|
params[-1] += f + '|'
|
||||||
|
params += ['-c', 'copy', '-absf', 'aac_adtstoasc', output]
|
||||||
|
|
||||||
|
if subprocess.call(params) == 0:
|
||||||
|
for file in files:
|
||||||
|
os.remove(file + '.ts')
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
raise
|
||||||
|
Loading…
x
Reference in New Issue
Block a user