mirror of https://github.com/yt-dlp/yt-dlp.git
parent
8dc5930511
commit
4f04be6add
|
@ -859,10 +859,10 @@ You can also fork the project on github and run your fork's [build workflow](.gi
|
|||
downloadable
|
||||
-F, --list-formats List available formats of each video.
|
||||
Simulate unless --no-simulate is used
|
||||
--merge-output-format FORMAT If a merge is required (e.g.
|
||||
bestvideo+bestaudio), output to given
|
||||
container format. One of mkv, mp4, ogg,
|
||||
webm, flv. Ignored if no merge is required
|
||||
--merge-output-format FORMAT Container to use when merging formats (e.g.
|
||||
bestvideo+bestaudio). Ignored if no merge is
|
||||
required. (currently supported: avi, flv,
|
||||
mkv, mov, mp4, webm)
|
||||
|
||||
## Subtitle Options:
|
||||
--write-subs Write subtitle file
|
||||
|
|
|
@ -20,6 +20,7 @@ from .extractor.common import InfoExtractor
|
|||
from .options import parseOpts
|
||||
from .postprocessor import (
|
||||
FFmpegExtractAudioPP,
|
||||
FFmpegMergerPP,
|
||||
FFmpegPostProcessor,
|
||||
FFmpegSubtitlesConvertorPP,
|
||||
FFmpegThumbnailsConvertorPP,
|
||||
|
@ -223,6 +224,7 @@ def validate_options(opts):
|
|||
validate_regex('format sorting', f, InfoExtractor.FormatSort.regex)
|
||||
|
||||
# Postprocessor formats
|
||||
validate_in('merge output format', opts.merge_output_format, FFmpegMergerPP.SUPPORTED_EXTS)
|
||||
validate_regex('audio format', opts.audioformat, FFmpegExtractAudioPP.FORMAT_RE)
|
||||
validate_in('subtitle format', opts.convertsubtitles, FFmpegSubtitlesConvertorPP.SUPPORTED_EXTS)
|
||||
validate_regex('thumbnail format', opts.convertthumbnails, FFmpegThumbnailsConvertorPP.FORMAT_RE)
|
||||
|
|
|
@ -13,6 +13,7 @@ from .cookies import SUPPORTED_BROWSERS, SUPPORTED_KEYRINGS
|
|||
from .downloader.external import list_external_downloaders
|
||||
from .postprocessor import (
|
||||
FFmpegExtractAudioPP,
|
||||
FFmpegMergerPP,
|
||||
FFmpegSubtitlesConvertorPP,
|
||||
FFmpegThumbnailsConvertorPP,
|
||||
FFmpegVideoRemuxerPP,
|
||||
|
@ -781,9 +782,8 @@ def create_parser():
|
|||
'--merge-output-format',
|
||||
action='store', dest='merge_output_format', metavar='FORMAT', default=None,
|
||||
help=(
|
||||
'If a merge is required (e.g. bestvideo+bestaudio), '
|
||||
'output to given container format. One of mkv, mp4, ogg, webm, flv. '
|
||||
'Ignored if no merge is required'))
|
||||
'Container to use when merging formats (e.g. bestvideo+bestaudio). Ignored if no merge is required. '
|
||||
f'(currently supported: {", ".join(sorted(FFmpegMergerPP.SUPPORTED_EXTS))})'))
|
||||
video_format.add_option(
|
||||
'--allow-unplayable-formats',
|
||||
action='store_true', dest='allow_unplayable_formats', default=False,
|
||||
|
|
|
@ -801,6 +801,8 @@ class FFmpegMetadataPP(FFmpegPostProcessor):
|
|||
|
||||
|
||||
class FFmpegMergerPP(FFmpegPostProcessor):
|
||||
SUPPORTED_EXTS = MEDIA_EXTENSIONS.common_video
|
||||
|
||||
@PostProcessor._restrict_to(images=False)
|
||||
def run(self, info):
|
||||
filename = info['filepath']
|
||||
|
|
Loading…
Reference in New Issue