Let ffstreams extract the video streams too.
Rare use case, but no reason not to allow it.
This commit is contained in:
parent
673d3f92b8
commit
22d680aaa1
1 changed files with 15 additions and 1 deletions
16
ffstreams.py
16
ffstreams.py
|
@ -67,6 +67,15 @@ def make_maps(input_file, prefix, search_pattern, extension_map, moveto=None):
|
||||||
maps.extend(args)
|
maps.extend(args)
|
||||||
return maps
|
return maps
|
||||||
|
|
||||||
|
def video_maps(input_file, moveto=None):
|
||||||
|
return make_maps(
|
||||||
|
input_file,
|
||||||
|
prefix='v',
|
||||||
|
search_pattern=r'Stream #0:(\d+)(\(\w+\))?[^\s]*: Video: (\w+)',
|
||||||
|
extension_map=AUDIO_EXTENSIONS,
|
||||||
|
moveto=moveto,
|
||||||
|
)
|
||||||
|
|
||||||
def audio_maps(input_file, moveto=None):
|
def audio_maps(input_file, moveto=None):
|
||||||
return make_maps(
|
return make_maps(
|
||||||
input_file,
|
input_file,
|
||||||
|
@ -85,8 +94,11 @@ def subtitle_maps(input_file, moveto=None):
|
||||||
moveto=moveto,
|
moveto=moveto,
|
||||||
)
|
)
|
||||||
|
|
||||||
def ffstreams(input_file, do_audios=False, do_subtitles=False, dry=False, moveto=None):
|
def ffstreams(input_file, do_videos=False, do_audios=False, do_subtitles=False, dry=False, moveto=None):
|
||||||
maps = []
|
maps = []
|
||||||
|
if do_videos:
|
||||||
|
maps.extend(video_maps(input_file, moveto=moveto))
|
||||||
|
|
||||||
if do_audios:
|
if do_audios:
|
||||||
maps.extend(audio_maps(input_file, moveto=moveto))
|
maps.extend(audio_maps(input_file, moveto=moveto))
|
||||||
|
|
||||||
|
@ -107,6 +119,7 @@ def ffstreams_argparse(args):
|
||||||
input_file = pathclass.Path(input_filename)
|
input_file = pathclass.Path(input_filename)
|
||||||
ffstreams(
|
ffstreams(
|
||||||
input_file,
|
input_file,
|
||||||
|
do_videos=args.videos,
|
||||||
do_audios=args.audios,
|
do_audios=args.audios,
|
||||||
do_subtitles=args.subtitles,
|
do_subtitles=args.subtitles,
|
||||||
dry=args.dry,
|
dry=args.dry,
|
||||||
|
@ -118,6 +131,7 @@ def main(argv):
|
||||||
|
|
||||||
parser.add_argument('input_filename', nargs='+')
|
parser.add_argument('input_filename', nargs='+')
|
||||||
parser.add_argument('--moveto', dest='moveto', default=None)
|
parser.add_argument('--moveto', dest='moveto', default=None)
|
||||||
|
parser.add_argument('--video', '--videos', dest='videos', action='store_true')
|
||||||
parser.add_argument('--audio', '--audios', dest='audios', action='store_true')
|
parser.add_argument('--audio', '--audios', dest='audios', action='store_true')
|
||||||
parser.add_argument('--subtitles', '--subs', dest='subtitles', action='store_true')
|
parser.add_argument('--subtitles', '--subs', dest='subtitles', action='store_true')
|
||||||
parser.add_argument('--dry', dest='dry', action='store_true')
|
parser.add_argument('--dry', dest='dry', action='store_true')
|
||||||
|
|
Loading…
Reference in a new issue