Beispiel #1
0
    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",
            ],
        )
Beispiel #2
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",
            ],
        )
Beispiel #3
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",
            ],
        )