Correct handling of streams in some circumstances
This commit is contained in:
parent
3d18d786b0
commit
6cab95e962
1 changed files with 11 additions and 7 deletions
18
main.py
18
main.py
|
@ -6,9 +6,9 @@ import os
|
|||
@click.command()
|
||||
@click.argument('infile')
|
||||
@click.argument('outdir')
|
||||
@click.option('--audio-lang')
|
||||
@click.option('--hardcode')
|
||||
def main(infile, outdir, hardcode=None, audio_lang='eng'):
|
||||
@click.option('--audio', help="Audio language or stream number")
|
||||
@click.option('--hardcode', help="Hardcode target sub stream (language or stream number)")
|
||||
def main(infile, outdir, hardcode=None, audio='eng'):
|
||||
outfile = os.path.join(outdir, os.path.splitext(os.path.split(infile)[1])[0]+'.mp4')
|
||||
probe = ffmpeg.probe(infile)
|
||||
|
||||
|
@ -19,16 +19,20 @@ def main(infile, outdir, hardcode=None, audio_lang='eng'):
|
|||
elif stream['codec_type'] == 'subtitle':
|
||||
sub_streams.append(stream)
|
||||
|
||||
if len(audio_streams) == 1:
|
||||
if audio.isdigit():
|
||||
audio_index = audio
|
||||
elif len(audio_streams) == 1:
|
||||
audio_index = str(audio_streams[0]['index'])
|
||||
else:
|
||||
audio_index = next(str(stream['index']) for stream in audio_streams if stream['tags'].get('language') == audio_lang)
|
||||
audio_index = next(str(stream['index']) for stream in audio_streams if stream['tags'].get('language') == audio)
|
||||
|
||||
if hardcode:
|
||||
if len(sub_streams) == 1:
|
||||
if hardcode.isdigit():
|
||||
sub_stream = hardcode
|
||||
elif len(sub_streams) == 1:
|
||||
sub_stream = sub_streams[0]
|
||||
else:
|
||||
sub = next(stream['index'] for stream in sub_streams if stream['tags'].get('language') == hardcode)
|
||||
sub_stream = next(stream for stream in sub_streams if stream['tags'].get('language') == hardcode)
|
||||
|
||||
raw = ffmpeg.input(infile)
|
||||
if hardcode:
|
||||
|
|
Loading…
Add table
Reference in a new issue