def test_overlay_watermark_image(self): video_in = "a.mkv" image_in = "a.png" video_codec = VideoCodecs.H264(constant_rate_factor=13.0) audio_codec = AudioCodecs.AAC(bitrate="256k", channels=2, sampling_rate=48000) video_outstream = VideoOutstream(video_in, video_codec) video_outstream.add_overlay(VideoInstream(image_in)) audio_outstream = AudioOutstream(video_in, audio_codec) ffmpeg = FFmpeg([video_outstream, audio_outstream], Container.M4V) self.assertEqual( ffmpeg.command[:-1], [ "/usr/local/bin/ffmpeg", "-y", "-i", video_in, "-i", image_in, "-filter_complex", "[0:v][1:v:0]overlay=0:0[vf0_out]", "-map", "[vf0_out]", "-c:v", "h264", "-crf", "13.0", "-pix_fmt", "yuv420p", "-profile:v", "high", "-level", "4.0", "-map", "0:a:0", "-c:a:0", "libfdk_aac", "-b:a:0", "256k", "-ac:a:0", "2", "-ar:a:0", "48000", "-threads", "0", ], )
def test_hardburn_text_subtitle(self): src = "a.mkv" subtitle_path = "b.srt" video_codec = VideoCodecs.H264(constant_rate_factor=13.0) audio_codec = AudioCodecs.AAC(bitrate="256k", channels=2, sampling_rate=48000) video_outstream = VideoOutstream(src, video_codec) video_outstream.add_subtitle(subtitle_path) audio_outstream = AudioOutstream(src, audio_codec) ffmpeg = FFmpeg([video_outstream, audio_outstream], Container.M4V) self.assertEqual( ffmpeg.command[:-1], [ "/usr/local/bin/ffmpeg", "-y", "-i", src, "-filter_complex", "[0:v]subtitles=%s[vf0_out]" % subtitle_path, "-map", "[vf0_out]", "-c:v", "h264", "-crf", "13.0", "-pix_fmt", "yuv420p", "-profile:v", "high", "-level", "4.0", "-map", "0:a:0", "-c:a:0", "libfdk_aac", "-b:a:0", "256k", "-ac:a:0", "2", "-ar:a:0", "48000", "-threads", "0", ], )
def test_video_presentation_timestamp(self): src = "a.mkv" video_codec = VideoCodecs.H264(constant_rate_factor=13.0) audio_codec = AudioCodecs.AAC(bitrate="256k", channels=2, sampling_rate=48000) video_outstream = VideoOutstream(src, video_codec) video_outstream.add_presentation_timestamp(0.5) audio_outstream = AudioOutstream(src, audio_codec) ffmpeg = FFmpeg([video_outstream, audio_outstream], Container.MATROSKA) self.assertEqual( ffmpeg.command[:-1], [ "/usr/local/bin/ffmpeg", "-y", "-i", src, "-filter_complex", "[0:v]setpts=0.5*PTS[vf0_out]", "-map", "[vf0_out]", "-c:v", "h264", "-crf", "13.0", "-pix_fmt", "yuv420p", "-profile:v", "high", "-level", "4.0", "-map", "0:a:0", "-c:a:0", "libfdk_aac", "-b:a:0", "256k", "-ac:a:0", "2", "-ar:a:0", "48000", "-threads", "0", ], )