70 lines
2 KiB
Python
70 lines
2 KiB
Python
# -*- coding: utf8 -*-
|
|
|
|
import unittest
|
|
|
|
from ffmpegwrapper import FFmpeg, Input, Output
|
|
from ffmpegwrapper.codec import VideoCodec, AudioCodec
|
|
from ffmpegwrapper.filter import VideoFilter
|
|
from ffmpegwrapper.options import Options
|
|
|
|
|
|
class FFmpegTestCase(unittest.TestCase):
|
|
|
|
def test_input_interface(self):
|
|
input = Input('/old')
|
|
self.assertEqual(list(input), ['-i', '/old'])
|
|
self.assertEqual(input.file, '/old')
|
|
|
|
option = Options({'-vf': 'x11grab'})
|
|
input.append(option)
|
|
self.assertEqual(list(input), ['-vf', 'x11grab', '-i', '/old'])
|
|
self.assertEqual(input.pop(), option)
|
|
|
|
input.add_option('-vf', 'x11grab')
|
|
self.assertEqual(input.option_containers, [option])
|
|
|
|
def test_output_interface(self):
|
|
output = Output('/new')
|
|
self.assertEqual(list(output), ['/new'])
|
|
self.assertEqual(output.file, '/new')
|
|
|
|
option = Options({'-vcodec': 'libx264'})
|
|
output.append(option)
|
|
self.assertEqual(list(output), ['-vcodec', 'libx264', '/new'])
|
|
self.assertEqual(output.pop(), option)
|
|
|
|
output.add_option('-vcodec', 'libx264')
|
|
self.assertEqual(output.option_containers, [option])
|
|
|
|
def test_codec_interface(self):
|
|
codec = VideoCodec('libx264')
|
|
self.assertEqual(list(codec), ['-vcodec', 'libx264'])
|
|
|
|
codec = AudioCodec('ac3')
|
|
self.assertEqual(list(codec), ['-acodec', 'ac3'])
|
|
|
|
def test_filter_interface(self):
|
|
filter = VideoFilter()
|
|
filter.blackframe(1, 2).crop(792)
|
|
self.assertEqual(list(filter), ['-vf',
|
|
'blackframe=1:2,crop=792'])
|
|
|
|
output = Output('/new', filter)
|
|
self.assertEqual(list(output), ['-vf',
|
|
'blackframe=1:2,crop=792', '/new'])
|
|
|
|
def test_ffmpeg_interface(self):
|
|
input = Input('/old')
|
|
output = Output('/new')
|
|
|
|
ffmpeg = FFmpeg('ffmpeg', input, output)
|
|
self.assertEqual(list(ffmpeg), ['-i', '/old', '/new'])
|
|
|
|
|
|
class VideoFilter(unittest.TestCase):
|
|
pass
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|