Add support for rawvideo
This commit is contained in:
@@ -69,7 +69,7 @@ temp_frame_formats : List[ImageFormat] = [ 'bmp', 'jpeg', 'png', 'tiff' ]
|
|||||||
output_encoder_set : EncoderSet =\
|
output_encoder_set : EncoderSet =\
|
||||||
{
|
{
|
||||||
'audio': [ 'flac', 'aac', 'libmp3lame', 'libopus', 'libvorbis', 'pcm_s16le', 'pcm_s32le' ],
|
'audio': [ 'flac', 'aac', 'libmp3lame', 'libopus', 'libvorbis', 'pcm_s16le', 'pcm_s32le' ],
|
||||||
'video': [ 'libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf', 'h264_qsv', 'hevc_qsv', 'h264_videotoolbox', 'hevc_videotoolbox' ]
|
'video': [ 'libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf', 'h264_qsv', 'hevc_qsv', 'h264_videotoolbox', 'hevc_videotoolbox', 'rawvideo' ]
|
||||||
}
|
}
|
||||||
output_audio_encoders : List[AudioEncoder] = output_encoder_set.get('audio')
|
output_audio_encoders : List[AudioEncoder] = output_encoder_set.get('audio')
|
||||||
output_video_encoders : List[VideoEncoder] = output_encoder_set.get('video')
|
output_video_encoders : List[VideoEncoder] = output_encoder_set.get('video')
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ def merge_video(target_path : str, temp_video_fps : Fps, output_video_resolution
|
|||||||
ffmpeg_builder.set_video_quality(output_video_encoder, output_video_quality),
|
ffmpeg_builder.set_video_quality(output_video_encoder, output_video_quality),
|
||||||
ffmpeg_builder.set_video_preset(output_video_encoder, output_video_preset),
|
ffmpeg_builder.set_video_preset(output_video_encoder, output_video_preset),
|
||||||
ffmpeg_builder.set_video_fps(output_video_fps),
|
ffmpeg_builder.set_video_fps(output_video_fps),
|
||||||
ffmpeg_builder.set_pixel_format('yuv420p'),
|
ffmpeg_builder.set_pixel_format(output_video_encoder),
|
||||||
ffmpeg_builder.set_video_colorspace('bt709'),
|
ffmpeg_builder.set_video_colorspace('bt709'),
|
||||||
ffmpeg_builder.force_output(temp_file_path)
|
ffmpeg_builder.force_output(temp_file_path)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -56,8 +56,10 @@ def unsafe_concat() -> Commands:
|
|||||||
return [ '-f', 'concat', '-safe', '0' ]
|
return [ '-f', 'concat', '-safe', '0' ]
|
||||||
|
|
||||||
|
|
||||||
def set_pixel_format(pixel_format : str) -> Commands:
|
def set_pixel_format(video_encoder : VideoEncoder) -> Commands:
|
||||||
return [ '-pix_fmt', pixel_format ]
|
if video_encoder == 'rawvideo':
|
||||||
|
return [ '-pix_fmt', 'rgb24' ]
|
||||||
|
return [ '-pix_fmt', 'yuv420p' ]
|
||||||
|
|
||||||
|
|
||||||
def set_frame_quality(frame_quality : int) -> Commands:
|
def set_frame_quality(frame_quality : int) -> Commands:
|
||||||
|
|||||||
@@ -117,8 +117,8 @@ AudioTypeSet : TypeAlias = Dict[AudioFormat, str]
|
|||||||
ImageTypeSet : TypeAlias = Dict[ImageFormat, str]
|
ImageTypeSet : TypeAlias = Dict[ImageFormat, str]
|
||||||
VideoTypeSet : TypeAlias = Dict[VideoFormat, str]
|
VideoTypeSet : TypeAlias = Dict[VideoFormat, str]
|
||||||
|
|
||||||
AudioEncoder = Literal['aac', 'libmp3lame', 'libopus', 'libvorbis', 'flac', 'pcm_s16le', 'pcm_s32le']
|
AudioEncoder = Literal['flac', 'aac', 'libmp3lame', 'libopus', 'libvorbis', 'pcm_s16le', 'pcm_s32le']
|
||||||
VideoEncoder = Literal['libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf', 'h264_qsv', 'hevc_qsv', 'h264_videotoolbox', 'hevc_videotoolbox']
|
VideoEncoder = Literal['libx264', 'libx265', 'libvpx-vp9', 'h264_nvenc', 'hevc_nvenc', 'h264_amf', 'hevc_amf', 'h264_qsv', 'hevc_qsv', 'h264_videotoolbox', 'hevc_videotoolbox', 'rawvideo']
|
||||||
EncoderSet = TypedDict('EncoderSet',
|
EncoderSet = TypedDict('EncoderSet',
|
||||||
{
|
{
|
||||||
'audio' : List[AudioEncoder],
|
'audio' : List[AudioEncoder],
|
||||||
|
|||||||
Reference in New Issue
Block a user