|
@@ 61-89 (lines=29) @@
|
| 58 |
|
pass |
| 59 |
|
|
| 60 |
|
|
| 61 |
|
class H264(Format): |
| 62 |
|
def __init__(self, video: str = "libx264", audio: str = 'aac', **codec_options): |
| 63 |
|
""" |
| 64 |
|
@TODO: add documentation |
| 65 |
|
""" |
| 66 |
|
videos = ['libx264', 'h264', 'h264_afm', 'h264_nvenc'] |
| 67 |
|
audios = ['copy', 'aac', 'libvo_aacenc', 'libfaac', 'libmp3lame', 'libfdk_aac'] |
| 68 |
|
|
| 69 |
|
super(H264, self).__init__(_verify_codecs(video, videos), _verify_codecs(audio, audios), **codec_options) |
| 70 |
|
|
| 71 |
|
def multiply(self) -> int: |
| 72 |
|
return MULTIPLY_BY_TWO |
| 73 |
|
|
| 74 |
|
def get_codec_options(self) -> dict: |
| 75 |
|
""" |
| 76 |
|
set the default value of h264 codec options and update the value with the specified value by user |
| 77 |
|
see https://ffmpeg.org/ffmpeg-codecs.html#Options-28 for more information about options |
| 78 |
|
:return: dict |
| 79 |
|
""" |
| 80 |
|
h264_codec_options = { |
| 81 |
|
'bf': 1, |
| 82 |
|
'keyint_min': 25, |
| 83 |
|
'g': 250, |
| 84 |
|
'sc_threshold': 40 |
| 85 |
|
} |
| 86 |
|
|
| 87 |
|
h264_codec_options.update(self.codec_options) |
| 88 |
|
|
| 89 |
|
return h264_codec_options |
| 90 |
|
|
| 91 |
|
|
| 92 |
|
class HEVC(Format): |
|
@@ 92-119 (lines=28) @@
|
| 89 |
|
return h264_codec_options |
| 90 |
|
|
| 91 |
|
|
| 92 |
|
class HEVC(Format): |
| 93 |
|
""" |
| 94 |
|
@TODO: add documentation |
| 95 |
|
""" |
| 96 |
|
def __init__(self, video: str = "libx265", audio: str = 'aac', **codec_options): |
| 97 |
|
videos = ['libx265', 'h265'] |
| 98 |
|
audios = ['copy', 'aac', 'libvo_aacenc', 'libfaac', 'libmp3lame', 'libfdk_aac'] |
| 99 |
|
|
| 100 |
|
super(HEVC, self).__init__(_verify_codecs(video, videos), _verify_codecs(audio, audios), **codec_options) |
| 101 |
|
|
| 102 |
|
def multiply(self) -> int: |
| 103 |
|
return MULTIPLY_BY_TWO |
| 104 |
|
|
| 105 |
|
def get_codec_options(self) -> dict: |
| 106 |
|
""" |
| 107 |
|
set the default value of hevc(h265) codec options and update the value with the specified value by user |
| 108 |
|
see https://ffmpeg.org/ffmpeg-codecs.html#Options-29 for more information about options |
| 109 |
|
:return: dict |
| 110 |
|
""" |
| 111 |
|
h265_codec_options = { |
| 112 |
|
'keyint_min': 25, |
| 113 |
|
'g': 250, |
| 114 |
|
'sc_threshold': 40 |
| 115 |
|
} |
| 116 |
|
|
| 117 |
|
h265_codec_options.update(self.codec_options) |
| 118 |
|
|
| 119 |
|
return h265_codec_options |
| 120 |
|
|
| 121 |
|
|
| 122 |
|
class VP9(Format): |