aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan@gmail.com>2021-01-28 09:26:50 +0530
committerpukkandan <pukkandan@gmail.com>2021-01-28 10:36:34 +0530
commit179122495bdddcc134db6b3ee0a9da664c8cb9fa (patch)
tree97e0b608280db6af4789c24c07afd6c402c10af7
parent02fd60d3057cb2983ba87ff30f9bf6444c624577 (diff)
downloadhypervideo-pre-179122495bdddcc134db6b3ee0a9da664c8cb9fa.tar.lz
hypervideo-pre-179122495bdddcc134db6b3ee0a9da664c8cb9fa.tar.xz
hypervideo-pre-179122495bdddcc134db6b3ee0a9da664c8cb9fa.zip
[ffmpeg] Document more formats that are supported for remux/recode
-rw-r--r--youtube_dlc/__init__.py12
-rw-r--r--youtube_dlc/options.py11
-rw-r--r--youtube_dlc/postprocessor/ffmpeg.py2
3 files changed, 17 insertions, 8 deletions
diff --git a/youtube_dlc/__init__.py b/youtube_dlc/__init__.py
index 6a790339d..cd0ab7613 100644
--- a/youtube_dlc/__init__.py
+++ b/youtube_dlc/__init__.py
@@ -15,6 +15,7 @@ import sys
from .options import (
parseOpts,
+ _remux_formats,
)
from .compat import (
compat_getpass,
@@ -209,12 +210,15 @@ def _real_main(argv=None):
opts.audioquality = opts.audioquality.strip('k').strip('K')
if not opts.audioquality.isdigit():
parser.error('invalid audio quality specified')
- if opts.remuxvideo is not None:
- if opts.remuxvideo not in ['mp4', 'mkv']:
- parser.error('invalid video container format specified')
if opts.recodevideo is not None:
- if opts.recodevideo not in ['mp4', 'flv', 'webm', 'ogg', 'mkv', 'avi']:
+ if opts.recodevideo not in _remux_formats:
parser.error('invalid video recode format specified')
+ if opts.remuxvideo and opts.recodevideo:
+ opts.remuxvideo = None
+ write_string('WARNING: --remux-video is ignored since --recode-video was given\n', out=sys.stderr)
+ if opts.remuxvideo is not None:
+ if opts.remuxvideo not in _remux_formats:
+ parser.error('invalid video remux format specified')
if opts.convertsubtitles is not None:
if opts.convertsubtitles not in ['srt', 'vtt', 'ass', 'lrc']:
parser.error('invalid subtitle format specified')
diff --git a/youtube_dlc/options.py b/youtube_dlc/options.py
index 749a6c6e0..e17460e1c 100644
--- a/youtube_dlc/options.py
+++ b/youtube_dlc/options.py
@@ -22,6 +22,9 @@ from .utils import (
from .version import __version__
+_remux_formats = ('mp4', 'mkv', 'flv', 'webm', 'mov', 'avi', 'mp3', 'mka', 'm4a', 'ogg', 'opus')
+
+
def _hide_login_info(opts):
PRIVATE_OPTS = set(['-p', '--password', '-u', '--username', '--video-password', '--ap-password', '--ap-username'])
eqre = re.compile('^(?P<key>' + ('|'.join(re.escape(po) for po in PRIVATE_OPTS)) + ')=.+$')
@@ -1017,14 +1020,16 @@ def parseOpts(overrideArguments=None):
'--remux-video',
metavar='FORMAT', dest='remuxvideo', default=None,
help=(
- 'Remux the video into another container if necessary (currently supported: mp4|mkv). '
+ 'Remux the video into another container if necessary (currently supported: %s). '
'If target container does not support the video/audio codec, remuxing will fail. '
'You can specify multiple rules; eg. "aac>m4a/mov>mp4/mkv" will remux aac to m4a, mov to mp4 '
- 'and anything else to mkv.'))
+ 'and anything else to mkv.' % '|'.join(_remux_formats)))
postproc.add_option(
'--recode-video',
metavar='FORMAT', dest='recodevideo', default=None,
- help='Re-encode the video into another format if re-encoding is necessary (currently supported: mp4|flv|ogg|webm|mkv|avi)')
+ help=(
+ 'Re-encode the video into another format if re-encoding is necessary. '
+ 'The supported formats are the same as --remux-video'))
postproc.add_option(
'--postprocessor-args', '--ppa',
metavar='NAME:ARGS', dest='postprocessor_args', default={}, type='str',
diff --git a/youtube_dlc/postprocessor/ffmpeg.py b/youtube_dlc/postprocessor/ffmpeg.py
index f2be0f415..94eeec980 100644
--- a/youtube_dlc/postprocessor/ffmpeg.py
+++ b/youtube_dlc/postprocessor/ffmpeg.py
@@ -402,7 +402,7 @@ class FFmpegVideoRemuxerPP(FFmpegPostProcessor):
else 'already is in target format %s' if sourceext == targetext
else None)
if _skip_msg:
- self.to_screen('Not remuxing media file %s - %s' % (path, _skip_msg % sourceext))
+ self.to_screen('Not remuxing media file %s; %s' % (path, _skip_msg % sourceext))
return [], information
options = ['-c', 'copy', '-map', '0', '-dn']