에이비신스

AviSynth
에이비신스
개발자AviSynth 개발자, Doom9 포럼 사용자
안정적 해제3.7.2 (AviSynth+)[1] (2022년 3월 17일; 6일(2022-03-17) [±]
릴리스 미리 보기2.6.1 알파(2016년 5월 17일; 5년(2016-05-17) [±]
리포지토리
기록 위치C++
운영 체제창문들
유형디지털 비디오 프레임서버
면허증GNU GPL
웹사이트www.avisynth.nl

AviSynth는 벤 루디악 굴드, 에드윈 판 에그겔렌, 클라우스 포스트, 리차드 버그, 이언 브라밤 등이 개발한 마이크로소프트 윈도용 프레임서버 프로그램이다.[2]GNU GPL 라이선스에 따른 무료 소프트웨어다.

스크립팅 비디오 편집기

AviSynth는 (GUI 없이) 스크립팅에 의해 전적으로 제어되는 비선형 비디오 편집기 역할을 한다.[3]그것일반적으로 미디어 플레이어, 비디오 편집 소프트웨어 또는 인코더인 VFW 다운스트림 응용 프로그램에서 볼 수 있는 AVI 비디오 파일(또는 WAV 오디오 파일)을 에뮬레이트한다.[4]

AviSynth는 DirectShow 필터와 비슷하지만 바이너리 인터페이스가 다른 필터를 기반으로 제작되었다.필터 기능에는 크롭, 디인터레이싱, 역텔레신, 스틸 이미지 작업, 기본 컬러 그레이딩, 비디오 노이즈 감소 등 많은 것들이 포함된다.AviSynth는 또한 절단, 트리밍, 세그먼트 재시퀀싱과 같은 전통적인 비디오 편집 작업을 수행한다.

예를 들어 "myAvi.avs" 스크립트를 고려하십시오(확장 "avs"로 저장된 일반 텍스트 파일만 해당).

AviSource("myAvi.avi") Crop(0, 0, 320, 240) Blur(0.1)

이 스크립트 파일은 대부분의 미디어 플레이어(예: Windows Media Player)에서 열 수 있다.이 프로그램은 'myAvi.avi'라는 비디오 파일을 왼쪽 상단 320픽셀에서 240픽셀까지 잘라내 소량 흐리게 재생할 것이다.수술은 순차적으로 일어나기 때문에 자르기가 먼저 일어나고 그 다음 흐릿해진다.

기술적으로 AviSynth는 AviSynth 스크립팅 언어로 작성된 스크립트에 의해 제어되는 필터 그래프(Microsoft GraphEdit와 유사하지만 추가된 기능 포함)를 생성한다.[5]그것의 기능은 플러그인으로 알려진 타사 필터의 사용을 통해 확장될 수 있다.외부 플러그인 목록은 AviSynth 필터 컬렉션에서 유지된다.

AviSynth는 프레임서버로, 호출 프로그램이 오디오/비디오 프레임을 요청하고 스크립트가 이를 제공한다.호출 프로그램은 물리적 파일과 마찬가지로 일시 정지, 앞으로 점프 또는 뒤로 점프하는 등의 순서로 프레임을 호출할 수 있다.

AviSynth 스크립팅 언어

스크립팅 언어는 데이터 흐름 언어로서 [5]연산 사이에 흐르는 데이터의 방향 그래프를 설명하는 프로그래밍 패러다임이다.대부분의 절차적 프로그래밍 제어 구조는 [6]부족하지만 변수, 구별되는 데이터 유형, 조건 및 복잡한 표현 등 프로그래머에게 익숙한 많은 특징을 포함하고 있다.

언어는 주로 오디오/비디오 클립을 내장 데이터 유형으로 사용하여 작동한다.클립은 너비, 높이, 지속시간 등 여러 속성을 가진 복잡한 구조다.[7]언어는 또한 int, float, bool, string 등 몇 가지 표준 데이터 유형을 더 가지고 있다.[8]이것들은 계산, 결정, 영상에 자막과 같은 텍스트를 쓰는데 사용될 수 있다.

스크립트는 단일 반환 값을 가지는데, 이는 스크립트를 실행하는 프로그램에 의해 '보이는 오디오 및 비디오'이다.이것은 보통 대본의 마지막 행이지만, 반환문은 어느 지점에서나 삽입될 수 있다.

"헬로 월드"

이 예는 "Hello World" 프로그램이다.

블랭크클립() 부제목("안녕, 세상!")

위의 텍스트를 .avs 확장자가 있는 텍스트 파일에 입력하면 Windows Media Player(윈도우 미디어 플레이어) 또는 아래 목록에 있는 다른 프로그램에서 열 수 있으며, "Hello, world!"라는 문구가 포함된 동영상이 디스플레이 된다.

BlankClip 기능은 새로운 비디오를 만든다.단어 끝에 있는 괄호는 인수가 전달되지 않기 때문에 선택사항이지만, 이 경우에는 변수가 아닌 함수임을 나타내기 위해 주어진다.

자막 기능은 이전에 만든 빈 비디오 위에 "안녕, 세상!"이라는 말을 그린다.

두 기능 모두 더 많은 인수(예: 빈 비디오의 크기와 길이, 자막의 위치, 글꼴 및 색상 제어)를 수용하지만, 이 예에서는 제외된다. 함수는 기본 제공 인수를 사용한다.

Avisynth는 간단한 스크립트를 훨씬 쉽게 쓰는 통사적 설탕을 사용한다: Last라고 불리는 암묵적 변수.암묵적 변수가 없다면 위의 대본은 다음과 같이 써야 할 것이다.

Last = BlankClip() Last = Last.자막("안녕, 세계야!") 마지막 반환

또는 이와 같은 경우:

A = BlankClip() B = A.부제목("안녕, 세계야!") 반송 B

명시적 클립 변수는 일반적으로 두 개 이상의 클립을 포함하는 기능에만 사용된다.

A = BlankClip() B = A.부제("안녕, 세계야!") 리턴 용해(A, B, 30) # 30프레임 크로스 페이드

영상 처리

이 예는 실제 비디오를 가져와서 약간의 간단한 처리를 적용한 후 출력에 반환한다.

AviSource("C:\Example.avi") ReducleBy2() GrayScale()

AviSource 기능은 실제 위치에서 AVI 비디오를 로드하는 데 사용된다.다른 미디어 유형을 열기 위해 DirectShowSource 기능을 대신 사용할 수 있다.RedeBy2는 영상의 수직 및 수평 크기를 반으로 나누고 그레이스케일은 모든 색상 정보를 삭제한다.

AviSynth 필터는 많은 RGBYUV 컬러 공간에서 작동하여 모든 종류의 비디오 입력 및 출력을 허용한다.[9]특정 기능은 특정 색상 공간에서만 작동하며, 예를 들어, 대부분의 비디오는 YUV 색상 공간에서 배포되지만 대부분의 색상 보정RGB 공간 중 하나에서 수행된다.색상 수정 스크립트는 다음과 같이 보일 수 있다.

DirectShowSource("movie.mp4") # YV12 컬러 공간ConvertToRGB32 RGBAdjust(1.0, 0.95, 1.0) #녹색 채널 ConvertTo 감소YV12

사용자 정의

AviSynth 스크립팅 언어는 사용자가 자신의 기능을 정의할 수 있도록 한다.

이것은 인터레이싱 라인을 손상시키지 않고 클립에서 다른 클립으로 용해시킬 수 있는 기능의 예다.

clip1 = AVISource("video1.avi") clip2 = AVISource("video2.avi") # 아래에 정의된 사용자 정의 함수를 호출: interlased_dissolve(clip1, clip2, 30) # ...스크립트는 위의 결과를 호출 프로그램 # 사용자 정의 함수: # clip1에서 30프레임 이상의 clip2 함수 interlased_clip2(clip clip1, clip2, intier) { clip1 = clip1로 되돌린다.SeparateFields evn1 = clip1.짝수 홀수1 = clip1을 선택하십시오.SelectOdd clip2 = clip2.SeparateFields evn2 = clip2.짝수 홀수2 = 클립2를 선택하십시오.SelectOdd evn = Diss(evn1, evn2, iter) 홀수 = Diss(odd1, old2, ier) Interlev(evn, old)짜맞추기, 더블위브.SelectOdd #... 함수는 위의 결과를 기본 스크립트 }에 반환함

AviSynth 3.0 및 AviSynth+

AviSynth 3.0은 AviSynth 2.x를 완전히 다시 쓴 것으로, AviSynth 2.x의 한계를 극복하기 위한 목적이었다. 플러그 인 메커니즘을 통해 새로운 색상 공간(45비트 깊이의 2개 포함)을 지원할 수 있고, 더 나은 성능을 위해 캐시 관리를 개선하고, Ruby를 사용하는 추상화된 색상 공간 모델 등의 개선점을 추가했다.n 현재 버전에 채택된 자국어.[10]

AviSynth 3.0은 윈도우즈가 아닌 다른 운영 체제에서 사용할 수 있게 되어 대신 GStreamer에 의존하여 Linux, Mac OS X, BSD와 같은 플랫폼으로 지원이 확대되었다.개발은 2007년 8월 이후 제자리걸음을 하고 있다.[10][11]

오늘날 AviSynth의 가장 최신 버전인 AviSynth+는 원래 공식 AviSynth 2.xx의 포크인 AviSynth+이지만, 이후 AviSynth+가 널리 인정받으며 실행이 되었다.오리지널 AviSynth 코드를 대부분 다시 썼으며, 64비트 지원, 멀티스레딩, 컬러 공간, 최근 컴파일러 지원, 새로운 스크립팅 구성(루프 등 새로운 제어 흐름 구성), 여러 분야에서 성능 향상 등 오랜 숙고 기능을 도입했다.[12]동시에 필터와 호스트 애플리케이션 모두에서 AviSynth 2.5/2.6 시리즈와의 100% 호환성을 유지했다.집필(2020~12년) 당시에도 적극적으로 유지되고 있다.

윈도우즈 이외의 운영 체제를 위한 AviSynth

AviSynth 2.xx는 Wine의 사용을 통해 Windows 이외의 운영 체제에서 사용할 수 있다.스크립트에서 작업하려면 VirtualDub/VirtualDubMod를 윈도우즈에서와 같이 사용할 수 있다.와인 아래의 AviSynth와 Linux 호스트에서 실행되는 FFmpeg과 같이 Avs2를 인터페이스하려면 다음과 같이 하십시오.YUV를 사용할 수 있다.Avs2YUV는 Wine에서 실행되는 Windows 명령줄 프로그램으로, AviSynth 스크립트의 출력을 Stdout으로 렌더링한 다음 FFmpeg에 파이핑된다.Avs2YUV도 명명된 파이프에 쓰는 것을 지원한다.[13]

AviSynth라는 리눅스 포트가 있다.[14]

AviSynth 호환 프로그램

프로그램명 면허증 평. 홈페이지
어도비 프리미어 프로 독점적, 상업적 버전 6.0 이상(CS4까지 포함)에는 AviSynth 가져오기 플러그인을 사용할 수 있다. Premier AviSynth 가져오기 플러그인
아반티 GUI 독점적인 프리웨어 아반티 GUI는 프리프로세서로 AviSynth를 삽입할 수 있는 옵션이 탑재된 FFmpeg용 무료 프런트엔드다. 아반티 GUI
애브스피모드 GPL AvsPmod는 플레이어, 구문 강조 표시 및 코드 자동 완성 기능이 내장된 AviSynth 스크립트 편집기다. 애브스피모드
시네마 크래프트 인코더 소유권 시네마 크래프트 인코더는 AviSynth 입력을 지원하는 상용 MPEG-2 인코더다. 시네마 크래프트
FFmpeg LGPL2.1+, GPL 2+ 창용으로 컴파일된 FFmpeg는 AviSynth 입력을 수신할 수 있다. 지침들
곰플레이어 전용, 프리웨어, 광고 지원 .avs 파일을 재생할 수 있다.
미디어 플레이어 클래식 GPL Media Player Classic은 AviSynth 스크립트를 로드하고 재생할 수 있다.32비트 버전이 필요하다. 미디어 플레이어 클래식
Microsoft 표현식 인코더 독점, 프리미엄 Microsoft Expression Encoder는 .avs 파일을 가져오고 변환할 수 있다.
엠피레이어 GPL MPlayer는 .avs 파일을 재생할 수 있다.
네로 멀티미디어 스위트 독점적, 상업적 Nero Showtime은 avs 파일을 재생할 수 있다.
잘 하는 군요 전용, 프리웨어, 광고 지원 SUPER(Simplified Universal Player, Encoder 및 Render)는 eRightSoft의 프리웨어로, 가장 일반적인 비디오 형식을 인코딩할 수 있으며 AviSynth를 완벽하게 지원한다. 잘 하는 군요
TMPGEnc 쉐어웨어/프리웨어 TMPGEnc무료 MPEG-1과 MPEG-2 인코더다.TMPGEnc Plus와 TMPGEnc Express는 TMPGEnc에 존재하는 MPEG-2 인코딩에 대한 30일 제한을 없앨 뿐만 아니라 향상된 기능을 포함하는 TMPGEnc의 상용 버전이다. 페가수스 주식회사
총 비디오 변환기] 독점적, 시험용 소프트웨어 Total Video Converter에는 AviSynth 가져오기 플러그인을 사용할 수 있다. 총 비디오 변환기
버추얼듀브 GPL VirtualDub는 널리 사용되는 다목적 비디오 변환기다. 버추얼듀브
VirtualDubMod GPL VirtualDubMod에는 AviSynth 스크립트에 대한 명시적 지원, AviSynth 스크립트 편집기 등과 같은 AviSynth 고유의 몇 가지 기능이 포함되어 있다.하지만 2006년 이후 업데이트되지 않았고 버그도 많이 포함돼 있다.[15] VirtualDubMod
윈도 미디어 플레이어 Windows/freeware의 독점적 구성 요소 Windows Media Player(윈도우 미디어 플레이어)는 AviSynth 스크립트를 로드하고 재생할 수 있으므로 간단한 재생과 테스트를 위한 좋은 선택이다.그것을 작동시키려면 약간의 등록 수정이 필요할지도 모른다. Windows Media 홈

게다가, 이제 AviSynth 스크립트만 입력으로 받아들이는 여러 프로그램이 만들어졌고, 따라서 프로그램 자체는 단순화되지만 사용자들은 AviSynth의 입력에 대한 전권을 갖게 되었다.

또한 AviSynth를 명령줄 오디오 및 비디오 인코더와 결합하여 일체형 모듈식 맞춤형 비디오 인코딩 애플리케이션을 제공하는 몇 가지 배치 인코딩 애플리케이션도 있다.메기(MeGUI)는 이런 종류의 응용의 예다.

AviSynth 스크립트는 간단한 텍스트 편집 프로그램에서 쉽게 열 수 있도록 되어 있지만, AvsPMod와 같은 AviSynth 스크립트 편집을 위해 특별히 의도된 여러 편집기가 있다.

참고 항목

참조

  1. ^ "AviSynth+". GitHub. 2022-03-17. Retrieved 2022-03-17.
  2. ^ "Avisynth Copyright". AviSynth Mediawiki. AviSynth Team. Retrieved 11 September 2015.
  3. ^ "Main Page - Avisynth". AviSynth Mediawiki. AviSynth Team. Retrieved 10 April 2013.
  4. ^ "More about AviSynth - Avisynth". AviSynth Wiki. AviSynth Team. Retrieved 10 April 2013.
  5. ^ a b "The Script Execution Model: The Filter Graph". AviSynth Wiki. AviSynth Team. Retrieved 25 October 2019.
  6. ^ "AviSynth syntax: control structures". AviSynth Wiki. Avisynth Team. Retrieved Sep 21, 2014.
  7. ^ "Clip Properties". AviSynth Wiki. Avisynth Team. Retrieved Oct 27, 2019.
  8. ^ "Script Variables". AviSynth Wiki. Avisynth Team. Retrieved Sep 14, 2017.
  9. ^ "Convert - Avisynth". AviSynth Wiki. AviSynth Team. Retrieved 27 October 2019.
  10. ^ a b "Avisynth 3 - dead project?". Doom9 Forum. Retrieved 2009-06-17.
  11. ^ "AviSynth v3". AviSynth Mediawiki. Retrieved 22 September 2019.
  12. ^ "AviSynth+". AviSynth Mediawiki. Retrieved 22 September 2019.
  13. ^ "Avs2YUV". Akuvian.org. Retrieved 2011-01-09.
  14. ^ "avxsynth/avxsynth: Linux Port of Avisynth". GitHub. Retrieved 2017-09-16.
  15. ^ "SourceForge.net: VirtualDubMod: Bugs". Retrieved 2009-12-03.

외부 링크