Страницы:Кликните, чтобы указать произвольную страницуназад1232324252627282930313233171172173далее
pka2001: Обработка видео с помощью AviSynth (Ависинт) (часть 2)
Начинающим: Ссылка на ВВОДНУЮ СТАТЬЮ по AviSynth, другие полезные ресурсы и ПРАВИЛА ЗАДАНИЯ ВОПРОСОВ
Статья про Avisynth на iXBT
Avisynth на русском - сайт Fizick'a с документацией и плагинами

Как задать вопрос по AviSynth, чтобы получить ответ.
1. Задавать вопрос, только если Вы хотя бы несколько минут попытались разобраться сами, и хотя бы заглянули в его русскую документацию, советы по решению проблем ( http://avisynth.org.ru/docs/russian/troubleshooting.htm) или например в данную ветку, или статью по основам. Ответ Вы все равно получите не быстро, и скорее всего по характеру вопроса последует совет посмотреть доки или просто отправят в поиск.
2. На вопрос типа: мне некогда читать всю эту длинную ветку, я страшно занятой, ну-ка бросайте ваши дела и скорей бегите сюда отвечать на вопросы моего величества - будет ответ "А пошел ты ... в поиск". На жалобный вариант "сижу на модеме" - будет ответ: нажмите маленькое слово "печать" вверху рядом с номерами страниц, сохраните всю ветку и почитайте отключившись, хотя бы несколько последних страниц, и поищите слова вопроса в этом тексте.
3. Это в частности относится к вопросам типа: А есть ли такая вот функция...
4. Если у Вас не работает (сообщает об ошибке) какая-то команда, или скрипт, в вопросе приведите скрипт полностью, копированием.
5. Сообщите точную (английскую) фразу сообщения об ошибке. Вы можете скопировать текст из окошка сообщения об ошибке VirtualDub в буфер Windows клавишами Ctrl-C и вставить его в текст на форуме клавишами Ctrl-V (или правой кнопкой мыши и т.п.). Или используйте клавиши Alt-PrintSreen, чтобы скопировать окно сообщения как изображение, сохраните в файл в редакторе рисунков и выложите его в интернет.
6. Предварительно лучше попробовать самому убрать (закомментировать) все работающие команды, и оставить минимальный набор команд, который при проверке вызывает эту ошибку (все равно Вас в ответе попросят это сделать).
7. Обязательно сообщите точную версию AviSynth (все равно Вас переспросят, т.к. разные версии имеют особенности).
8. Если ошибка в некотором внешнем плагине, обязательно также сообщите версию данного плагина.
9. Лучше выложить кадрик или небольшой (несколько кадров) проблемный кусочек видео на какой-то интернет сайт, чтобы гуру могли посмотреть его и сказать совет-приговор. Годятся такие сайты как например http://zalil.ru или http://www.mytempdir.com и подобные.
10. Не ждите разумного ответа на вопрос типа "А какой шумоподавитель (скрипт) - самый лучший?", так как даже если бы и существовал суперфильтр, то у него все равно были бы различные настройки, зависящие от типа видео и ваших личных предпочтений. Лучше, если Вы скажете, что вы попробовали, что понравилось, а что не совсем устраивает.

В принципе, все эти правила необязательны, и Вы можете спрашивать и писать что угодно, если Вас не интересует результат .
Просто представьте себя на месте гуру, который вынужден вытаскивать у каждого новичка эти сведения клещами, и через сколько раз ему это надоест.
А на хорошо поставленные вопросы отвечать и помогать хочется (даже если не знаем ответа ), так как вопрос понятен и видна заинтересованность.

Желаем Вам перейти от вопросов к сообщениям об успехах и новинках, ну и к ответам на вопросы новых новичков!
Jenyok
Member
393/600 ответов
19 лет на iXBT, с ноября 2005
Чаще пишет в "Видеозахват" (63%)
Россия, Russia, Moscow
Инфо Ответить
J
Jenyok Member
10 лет назад / 23 декабря 2014 17:11
womble
.
Вам для начала надо понять для себя и выработать стратегию обработки видео.
Т.е. то, что Вы хотите.
Для примера, привожу Вам стратегию обработки видео...
.
001#
002# Порядок обработки VHS видео материала (video DVD)
003# AviSynth cкрипты для обработки видео материала
004#
005# Данный порядок приведен для примера
006#
007  
008  
009Скрипт 01
010  
011 1.  Открытие файла AVISource, DirectShowSource, другое...
012 2.  Преобразование к YUY2 (YV12), ConvertToYUY2(), (ConvertToYV12()) ...
013 3а. Анализ цветового пространства ColorYUV2(opt="coring", analyze=true) ...
014 3.  Коррекция цветовой матрицы ColorMatrix(mode="Rec.709->Rec.601", inputFR=false, clamp=0, threads=0) ..
015 4.  Деинтерлейс (если необходимо) EEDI3, NNEDI3, TDeint, TMM ...
016 5.  Ресайз к PAR = 1 : 1 (квадратный пиксел) Spline64Resize() ...
017 6.  Обрезка дефектов кадра Crop() с соотношением сторон 4 : 3 (или 16 : 9)...
018 6а. Если необходимо, ресайз до размера 768х576 (квадратный пиксел) в 2, 4 раза NNEDI3_rpow2(), NNEDI2_rpow2() ...
019 7.  Ресайз к исходному размеру, шаг 5, или ресай до размера 768х576 (квадратный пиксел) Spline64Resize() ...
020 8.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...
021  
022  
023Скрипт 02
024  
025 1.  Открытие файла AVISource ...
026 2.  Получение аудио дорожки GetChannel(last, 1, 2) ...
027 3.  Удаление аудиодорожки из видео KillAudio() ...
028 4.  Построение Super клипа MSuper() ...
029 5.  Постороение Back Vectors до 10 включительно MAnalyze() ...
030 6.  Постороение Forward Vectors до 10 включительно MAnalyze() ...
031 7.  Построение Flow Vectors до 10 включительно MFlowInter() ...
032 8.  Функции интерполяции кадров до 10 включительно ...
033 9.  Собственно сама интерполяция плохих кадров по видео материалу ...
034 9а. Если необходимо, замена плохих кадров на нормальные кадры из видео материала Trim() ...
03510.  Восстановление звука видео материала AudioDub() ...
03611.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...
037  
038  
039Скрипт 03
040  
041 1.  Открытие файла AVISource ...
042 2.  Восстановление баланса белого для видео VHS ACOBW() ...
043 3.  Цвет, уровни ColorYUV2(gain_y = -0, cont_y = -0, gain_v = 0, gain_u = -0, off_u = 0, off_v = -0), Levels(0, 1.0, 255, 0, 255) ...
044 4.  Авто уровни AddBorders(X1al, 0, 0, 0, ColorWhite)   # X1al = 4, AddBorders(0, 0, X2al, 0, ColorBlack)   # X2al = 2, AutoLevels(filterRadius = filtRadius), Crop(X1al, 0, -1 * X2al , -0) ...
045 5.  Авто баланс белого ColorYUV2(last, opt="coring", showyuv=false, analyze=false, autowhite=true, autogain=false)   # Auto White ...
046 6.  Коррекция цветности, яркости, контрастности, насыщенности Tweak(last, hue = 0, sat = 1.2, cont = 0.9, coring = false, sse = false) ...
047 7.  Удаление радужности и цветового шума VHS CamCD(96, 1) ...
048 8.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...
049  
050  
051Скрипт 04
052  
053 1.  Открытие файла AVISource ...
054 2.  Глобальная стабилизация изображения 1-й вариант DePanEstimate() ...
055 3.  Глобальная стабилизация изображения 1-й вариант DepanStabilize() ...
056 4.  Глобальная стабилизация изображения 2-й вариант предварительная фильтрация FFT3DFilter() ...
057 5.  Глобальная стабилизация изображения 2-й вариант построение Super клипа MSuper() ...
058 6.  Глобальная стабилизация изображения 2-й вариант построение вектора MAnalyze() ...
059 7.  Глобальная стабилизация изображения 2-й вариант MDepan(клип шаг 3, клип шаг 5) ...
060 8.  Глобальная стабилизация изображения 2-й вариант DepanStabilize() ...
061 9.  Удаление горизонтальных и вертикальных полос и царапин DeScratch(), DeSpot() несколько вариантов ...
06210.  Удаление помех Delete_Stripes() если необходимо ...
06311.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...
064  
065  
066Скрипт 05
067  
068 1.  Открытие файла AVISource ...
069 2.  Проработка черных линий, мелких черных деталей видео материала FastLineDarken(), aWarpSharp(depth=4, blurlevel=2, thresh=0.2, cm=1) ...
070 3.  Повышение резкости изображения MGSharp(strength=8, thresh=64, ss=4) ...
071 4.  Восстанавление резкости изображения вариант 1 LSFmod() ...
072 5.  Восстанавление резкости изображения вариант 2 LimitedSharpenFaster(smode=3, strength=100)   # 150 ...
073 6.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...
074  
075  
076Скрипт 06
077  
078 1.  Открытие файла AVISource ...
079 2.  Шумодав для пикселей UnDot() ...
080 3.  Удаление блочности Deblock_QED(), DeBlock_Didee() ...
081 4.  Удаляние размытости цветовых контуров RemoveColorBleeding() ...
082 5.  Удаляние радужности DeRainbow2() ...
083 6а. Предварительная фильтрация degrainmedian(), fft3dfilter() ...
084 6б. Построение Super клипа MSuper() ...
085 6в. Построение векторов Back Vectors1, Forward Vectors1 MAnalyze() ...
086 6г. Сглаживание (шумоподавитель) MDegrain1() ...
087 7.  Восстанавление резкости изображения, потерянную после mdegrain вариант 1 LSFmod() ...
088 8.  Восстанавление резкости изображения, потерянную после mdegrain вариант 2 LimitedSharpenFaster(smode=3, strength=64)   # 100 ...
089 9.  Дехало (DeHalo) DeHalo_alpha(), YAHR() ...
09010.  DeBanding Filter, Color Banding Gradfun2dbmod() ...
09111.  Функция deVCR (VHS) deVCR(30) ...
09212.  This filter aims to repair the light and dark halos that follow high contrast edges in VHS sources FixVHSOversharpL(30, 12, 8), FixVHSOversharp(30, 14, 10), FixVHSOversharp(30, 12, 8) ...
09313.  Удаление скачков яркости FluxSmoothT(7) ...
09414.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...
095  
096  
097Скрипт 07
098  
099 1.  Открытие файла AVISource ...
100 2.  Предварительная фильтрация degrainmedian() ...
101 3.  Построение Super клипа MSuper() ...
102 4.  Построение векторов Back Vectors1..3, Forward Vectors1..3 MAnalyze() ...
103 5.  Сглаживание (шумоподавитель) MDegrain3() ...
104 6.  Пост фильтрация fft3dfilter() ...
105 7.  Сглаживание (шумоподавитель) FizzKiller() ...
106 8.  Восстанавление резкости изображения, потерянную после mdegrain вариант 1 LSFmod() ...
107 9.  Восстанавление резкости изображения, потерянную после mdegrain вариант 2 LimitedSharpenFaster(smode=3, strength=64)   # 100 ...
10810.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...
109  
110  
111Скрипт 08
112  
113 1.  Открытие файла AVISource ...
114 2.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM для экспорта звука для обработки ...
115 3.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM, начало фильма (если необходимо) ...
116 4.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM, середина фильма (если необходимо)...
117 5.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM, конец фильма (если необходимо)...
118 6.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM, титры фильма (если необходимо)...
119  
120  
121Скрипт 09
122  
123 1.  Открытие основного файла AVISource ...
124 2.  Удаление звуковой дорожки из видео материала KillAudio() ...
125 3.  Открыте обработанного звука WAVSource() ...
126 4.  Преобразование звука к 16 бит ConvertAudioTo16bit() ...
127 5.  Восстановление звука видео материала AudioDub() ...
128 6.  Открытие дополнительных файлов AVISource ...
129 7.  Сборка всего фильма целиком ...
130 8.  Преобразование ConvertToYV12() для записи DVD ...
131 9.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...
132  
133  
134Скрипт 10 (если необходим интерлейс)
135  
136 1.  Открытие файла AVISource ...
137 2.  Построение Super клипа MSuper() ...
138 3.  Построение векторов Back Vectors1, Forward Vectors1 MAnalyze() ...
139 4.  Построение векторов Back Vectors1, Forward Vectors1 MRecalculate() ...
140 5.  Изменение частоты кадров MFlowFps() ...
141 6.  Ресайз Spline64Resize() к размеру 720х576 (DVD PAL) ...
142 7.  Разделение на поля SeparateFields() или SeparateFieldsMod() ...
143 8.  Выбор кадров (полей) SelectEvery(4, 0, 3) ...
144 9.  Соединение полей черезстрочного видео Weave() ...
14510.  Запись AVI файла (чуть поджатый DivX, пресет 1080, битрейт 20 000), не сжатый звук PCM ...

Добавление от 23.12.2014 17:26:

.
Обработка звука с помощью AviSynth.
Файл разбит на 4-е части (сорри, файл большой).
Реально проверено при работе со звуком 5.1 .
.
001#
002# File:     Stereo.avsi
003#
004#
005# Date:     10.04.2013 year
006# Version:  1.6
007#
008#
009# License:  GNU GENERAL PUBLIC LICENSE
010#
011#
012# Author:   Jenyok  (Evgeniy Gurovskikh, Russia, Moscow)
013# E-Mail:   e_gurovskikh@mail.ru
014#
015#
016# Functions (pseudo Stereo and other sound functions) for AVISynth
017#
018# For all occasions of life (На все случаи жизни) ...
019#
020#
021# Plugin and Import
022#
023#   SoxFilter.dll
024#
025#
026#
027# function GetLeftChannel(clip clp)
028# function GetRightChannel(clip clp)
029# function Phase180(clip clp)
030#
031#
032# function PhaseDelay(clip clp, float "freq", float "phi")                        Shift (rotate) phase of audio to a different angle
033# function PhaseShift(clip clp, float "freq", float "phi")                        Shift (rotate) phase of audio to a different angle
034# function PhaseShift2(clip clp, float "freq", float "freq2", float "phi")        Shift (rotate) phase of audio to a different angle
035#
036# function MonoToStereo(clip clp, int "Channel")                                  Simple convert MONO audio to STEREO audio
037# function PseudoStereo1(clip clp, int "Channel", float "Delay")                  Only DELAY between channels, Delay in Sec
038# function PseudoStereo12(clip clp, int "Channel", float "Delay", float "KMix")   DELAY, L=L*k1+R*k2, R=R*k1+L*k2 (Addition)
039# function PseudoStereo13(clip clp, int "Channel", float "Delay", float "KMix")   DELAY, L=L*k1-R*k2, R=R*k1-L*k2 (Substraction)
040#
041# function PseudoStereo2(clip clp, int "Channel", float "LowFreq", float "HighFreq", bool "isDelay")
042# function PseudoStereo22(clip clp, int "Channel", bool "isDelay")
043# function PseudoStereo23(clip clp, int "Channel", bool "isDelay")
044#
045# function PseudoStereo3(clip clp, int "Channel", bool "isDelay")                 Described: Magazine "Radio" № 6, 1985 year, page 62 (USSR, Russia)
046# function PseudoStereo33(clip clp, int "Channel", bool "isDelay")                Described: Magazine "Radio" № 6, 1985 year, page 62 (USSR, Russia)
047#
048# function PseudoStereo4(clip clp, int "Channel", bool "isDelay")                 US Patent No 6,636,608 B1
049# function PseudoStereo43(clip clp, int "Channel", bool "isDelay")                US Patent No 6,636,608 B1
050#
051# function PseudoStereo5(clip clp, int "Channel", bool "isDelay")                 Analog: Philips chip TDA3810 (sound porcessor)
052# function PseudoStereo52(clip clp, int "Channel", bool "isDelay")                Analog: Philips chip TDA3810 (sound porcessor)
053#
054#
055# function StereoEnhancer(clip clp)                                               Analog: Philips chip TDA3810 (sound porcessor)
056#
057#
058# function StereoTo51(clip clp, bool "is24bit", bool "isStereo")                  Convert STEREO to 5.1 audio, 24 bits output
059#                                                                                
060# function UpDialog(clip clp)                                                     Convert STEREO to 5.1 audio
061# function UpDialog2(clip clp)                                                    Convert STEREO to 5.1 audio
062# function UpAction(clip clp)                                                     Convert STEREO to 5.1 audio
063# function UpAction2(clip clp)                                                    Convert STEREO to 5.1 audio
064# function UpGerzen(clip clp)                                                     Convert STEREO to 5.1 audio
065# function UpFarina(clip clp)                                                     Convert STEREO to 5.1 audio
066# function UpMultisonic(clip clp)                                                 Convert STEREO to 5.1 audio
067# function UpSoundOnSound(clip clp)                                               Convert STEREO to 5.1 audio
068#
069#
070# function Dmix3Stereo(clip a)                                                    Downmix sound functions
071# function Dmix3Dpl(clip a)                                                       Downmix sound functions
072# function Dmix4lStereo(clip a)                                                   Downmix sound functions
073# function Dmix4qStereo(clip a)                                                   Downmix sound functions
074# function Dmix4sDpl(clip a)                                                      Downmix sound functions
075# function Dmix5Stereo(clip a)                                                    Downmix sound functions
076# function Dmix5Dpl(clip a)                                                       Downmix sound functions
077# function Dmix5Dpl2(clip a)                                                      Downmix sound functions
078# function Dmix6Stereo(clip a)                                                    Downmix sound functions
079# function Dmix6Dpl(clip a)                                                       Downmix sound functions
080# function Dmix6Dpl2(clip a)                                                      Downmix sound functions
081# function Dmix6StereoLfe(clip a)                                                 Downmix sound functions
082# function Dmix6StereoLfe2(clip a)                                                Downmix sound functions
083# function Dmix6DplLfe(clip a)                                                    Downmix sound functions
084# function Dmix6Dpl2Lfe(clip a)                                                   Downmix sound functions
085#
086#
087  
088  
089  
090  
091  
092LoadPlugin("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\SOXFILTER_11\soxfilter.dll")
093  
094  
095  
096  
097  
098# Global Constants
099#
100global GLeftChannel  = 1
101global GRightChannel = 2
102global GChannel      = GLeftChannel
103  
104  
105# Global Constants
106#
107global GDelay        = 0.01200     # Delay t = 0.0120 sec (v=331 m/sec) ~4 m between sound source L and R in room
108                                   # Delay t = [0.0006 ... 0.025] sec l, Length = [0.1986 ... 8.275] meters
109global VSound        = 331.0       # Speed of sound in air, 331 m/sec
110  
111  
112  
113  
114  
115#
116# Get Left Channel of audio signal
117#
118function GetLeftChannel(clip clp)
119{
120  L = GetChannel(clp, GLeftChannel)
121   
122  return (ConvertToMono(L))
123}
124  
125  
126  
127#
128# Get Right Channel of audio signal
129#
130function GetRightChannel(clip clp)
131{
132  R = GetChannel(clp, GRightChannel)
133  
134  return (ConvertToMono(R))
135}
136  
137  
138  
139#
140# Shift (rotate) phase of audio signal to +180 grad
141#
142function Phase180(clip clp)
143{
144  return (Amplify(clp, -1.0))
145}
146  
147  
148  
149#
150# Rotate (shift) sound phase to angle "phi" by DELAY
151#
152# Special for PSEUDO STEREO audio functions ...
153#
154#
155# Phase shift, Delay audio signal by dT, mili sec.
156#
157#
158function PhaseDelay(clip clp, float "freq", float "phi")
159{
160  # Default variables
161  #
162  freq = Default(freq, 1000.0)                                      # Frequency Hz
163  phi  = Default(phi,    90.0)                                      # Angle "phi" grad
164   
165   
166  # Variables
167  #
168  # Input                                                           # input sound variable
169  # Shift                                                           # variable
170  # Time                                                            # variable
171  
172  
173  # Here is a code of function
174  #
175  phi    = (phi > 90.0) ? 90.0 : (phi < -90.0) ? -90.0 : Phi        # phi = [-90 ... +90] grad
176  
177  freq   = Abs(freq)
178  freq   = (freq < 5.0) ? 5.0 : (freq > 22000.0) ? 22000.0 : freq   # Frequency = [5 ... 22000] Hz
179   
180  Time   = Float(phi) / (Float(freq) * 360.0)                       # Time to Delay
181  
182  Input  = KillVideo(clp)                                           # Get Audio Channel(s), kill Video content
183  Input  = ConvertAudioTo16Bit(Input)                               # Convert to 16 bits integer
184  Shift  = DelayAudio(Input, Time)                                  # Delay audio WAVE Period divided by (+360.0 / phi)
185  
186  return (Shift)
187}
188  
189  
190  
191#
192# Rotate (shift) sound phase to angle "phi"
193#
194# Special for PSEUDO STEREO audio functions ...
195#
196#
197function PhaseShift(clip clp, float "freq", float "phi")
198{
199  # Default variables
200  #
201  freq    = Default(freq, 1000.0)                                   # Frequency 1000 Hz
202  phi     = Default(phi,    90.0)                                   # Angle "phi" grad
203  
204  
205  # Constants                                                    
206  #                                                              
207  HighPass = "highpass "                                            # High Pass Filter (ФВЧ) "/---"
208  
209  
210  # Variables                                                    
211  #                                                              
212  # Input                                                           # input sound variable
213  # Input180                                                        # input sound, phase +180 grad Variable
214  # Shift                                                           # variable
215  # Str1                                                            # variable
216  
217  
218  # Here is a code of function
219  #
220  phi    = (phi > 90.0) ? 90.0 : (phi < -90.0) ? -90.0 : Phi        # phi = [-90 ... +90], grad
221  
222  freq   = Abs(freq)
223  freq   = (freq < 5) ? 5.0 : (freq > 22000.0) ? 22000.0 : freq     # Frequency = [5 ... 22000] Hz freq
224  
225  Input    = KillVideo(clp)                                         # Get Audio Channel(s), kill Video content
226  Input    = ConvertAudioTo16Bit(Input)                             # Convert to 16 bits integer
227  Input180 = Phase180(Input)                                        # Shift (Rotate) phase to +180 grad
228  
229  Str1     = HighPass + String(Round(freq))                         # Str1="highpass " + String(Round(freq))
230  Shift    = SoxFilter(Input, Str1)                                 # High Pass filter "/---", freq Hz, shift (rotate) phase +90 grad
231  Shift    = ConvertAudioTo16bit(Shift)                             # Convert audio to 16 bits integer
232  Shift    = PhaseDelay(Shift, phi=-90.0, freq=freq)                # Shift (Rotate) phase to -90 grad
233  
234  Shift    = PhaseDelay(Shift, phi=phi, freq=freq)                  # Shift (Rotate) phase to phi grad, frequency=freq
235  Shift    = MixAudio(Shift, Input180, 0.5, 0.5)                    # Shift = Shift + Input180 (addition)
236  
237  return (Shift)
238}
239  
240  
241  
242#
243# Rotate (shift) sound phase to angle "phi"
244#
245# Special for PSEUDO STEREO audio functions ...
246#
247#
248function PhaseShift2(clip clp, float "freq", float "freq2", float "phi")
249{
250  # Default variables
251  #
252  freq     = Default(freq,    100.0)      # Frequency   100 Hz
253  freq2    = Default(freq2, 10000.0)      # Frequency 10000 Hz
254  phi      = Default(phi,      90.0)      # Angle "phi", grad
255  
256  
257  # Constants
258  #
259  BandPass = "bandpass "                  # Band Pass Filter (ПОЛОСОВОЙ) "/----\"
260  
261  
262  # Variables
263  #
264  # Input                                 # input sound variable
265  # Input180                              # input sound, phase +180 grad Variable
266  # FCentral                              # variable
267  # FWidth                                # variable
268  # Shift                                 # variable
269  # Shift1                                # variable
270  # Shift2                                # variable
271  # Shift3                                # variable
272  # Str1                                  # variable
273  # tmp                                   # variable
274  
275  
276  # Here is a code of function
277  #
278  phi   = (phi > 90.0) ? 90.0 : (phi < -90.0) ? -90.0 : Phi                # phi = [-90 ... +90] grad
279  
280  freq  = Abs(freq)
281  freq2 = Abs(freq2)
282  
283  (freq2 < freq) ? Eval("""
284    tmp   = freq2
285    freq2 = freq
286    freq  = tmp
287  """) : NOP()
288  
289  freq  = (freq  < 5.0) ? 5.0 : (freq  > 22000.0) ? 22000.0 : freq         # Frequency = [5 ... 22000] Hz, freq
290  freq2 = (freq2 < 5.0) ? 5.0 : (freq2 > 22000.0) ? 22000.0 : freq2        # Frequency = [5 ... 22000] Hz, freq2
291  
292  FCentral = Round((freq + freq2) / 2.0)                                   # Central frequency for Band Pass Filter
293  FWidth   = Round(freq2 - freq)                                           # Width frequency for Band Pass Filter
294  
295  Input    = KillVideo(clp)                                                # Get Audio Channel(s), kill Video content
296  Input    = ConvertAudioTo16Bit(Input)                                    # Convert to 16 bits integer
297  Input180 = Phase180(Input)                                               # Rotate (shift) phase to +180 grad
298  
299  Str1     = BandPass + String(FCentral) + " " + String(FWidth)
300  Shift    = SoxFilter(Input, Str1)                                        # Band Pass filter "/----\", FCentral, FWidth Hz
301  Shift    = ConvertAudioTo16bit(Shift)                                    # Convert audio to 16 bits integer
302  
303  Shift1   = PhaseDelay(Shift, phi=phi, freq=freq)                         # freq     Shift phase to +90 grad
304  Shift2   = PhaseDelay(Shift, phi=phi, freq=FCentral)                     # FCentral Shift phase to +90 grad
305  Shift3   = PhaseDelay(Shift, phi=phi, freq=freq2)                        # freq2    Shift phase to +90 grad
306  
307  Shift    = MixAudio(Shift1, Shift2,   0.75, 0.25)                        # Shift = Shift1 + Shift2   (addition)
308  Shift    = MixAudio(Shift,  Shift3,   0.75, 0.25)                        # Shift = Shift  + Shift3   (addition)
309  Shift    = MixAudio(Shift,  Input180, 0.75, 0.25)                        # Shift = Shift  + Input180 (addition)
310  
311  return (Shift)
312}
313  
314  
315  
316#
317# Simple MONO to STEREO audio conversion algorithm
318#
319function MonoToStereo(clip clp, int "Channel")
320{
321  Channel = Default(Channel, GLeftChannel)
322  
323  mono    = KillVideo(clp)
324  mono    = GetChannel(mono, Channel)
325  mono    = ConvertToMono(mono)
326  
327  return (MergeChannels(mono, mono))
328}
329  
330  
331  
332#
333# New Stereo algorythm for MONO audio track
334#
335# Only DELAY between channels in Sec
336#
337#
338function PseudoStereo1(clip clp, int "Channel", float "Delay")
339{
340  # Default variables
341  #
342  Channel = Default(Channel, GLeftChannel)   # Set default Left Channel (Левый канал)
343  Delay   = Default(Delay,         GDelay)   # Delay in Right Channel (Задержка в Правом Канале)
344  
345  
346  # Variables
347  #
348  # Input                                    # input sound Variable
349  # LeftChannel                              # Variable
350  # RightChannel                             # Variable
351  # Stereo                                   # Variable
352   
353  
354  # Here is a code of function
355  #
356  Delay = Abs(Delay)
357  Delay = (Delay <= 0.0006) ? 0.0006 : (Delay > 0.025) ? 0.025 : Delay   # Delay = [0.6 ... 25] miliSec
358   
359  Input = KillVideo(clp)                                            # Get Audio Channel(s), kill Video content
360  Input = ConvertAudioTo16Bit(Input)                                # Convert to 16 bits integer
361  Input = GetChannel(Input, Channel)                                # Get Left (Right) Audio Channel
362  Input = ConvertToMono(Input)                                      # Convert to MONO signal
363  Input = Normalize(Input, 0.707)                                   # Normalize sound volume level to -3dB
364  
365  LeftChannel  = Input
366  RightChannel = DelayAudio(Input, Delay)
367  LeftChannel  = Normalize(LeftChannel, 1.0)                        # Normalize sound volume level to +0dB
368  RightChannel = Normalize(RightChannel, 1.0)                       # Normalize sound volume level to +0dB
369  
370  Stereo       = MergeChannels(LeftChannel, RightChannel)           # Merge MONO singals to STEREO signal
371  
372  return (Stereo)
373  
374  
375# For Debug only
376return (ConvertAudioTo16bit(LeftChannel))
377return (ConvertAudioTo16bit(RightChannel))
378}
379  
380  
381  
382#
383# New Stereo algorythm for MONO audio track
384#
385# L = L * k1 + R * (1 - k1)
386# R = R * k1 + L * (1 - k1)
387# DELAY between channels in Sec
388#
389#
390function PseudoStereo12(clip clp, int "Channel", float "Delay", float "KMix")
391{
392  # Default variables
393  #
394  Channel = Default(Channel, GLeftChannel)   # Set default Left Channel (Левый канал)
395  Delay   = Default(Delay,         GDelay)   # Delay in Right Channel (Задержка в Правом Канале)
396  KMix    = Default(KMix,            0.70)   # First Coefficient of MixAudio()
397  
398  
399  # Variables
400  #
401  # Input                                    # input sound Variable
402  # LeftChannel                              # Variable
403  # RightChannel                             # Variable
404  # LChannel                                 # Variable
405  # RChannel                                 # Variable
406  # KMix2                                    # Variable
407  # Stereo                                   # Variable
408   
409                                      
410  # Here is a code of function
411  #
412  KMix  = Abs(KMix)
413  KMix  = (KMix < 0.10) ? 0.10 : (KMix > 0.90) ? 0.90 : KMix              # KMix  = [0.10 ... 0.90]
414  KMix2 = 1.00 - KMix
415  
416  Delay = Abs(Delay)
417  Delay = (Delay <= 0.0006) ? 0.0006 : (Delay > 0.025) ? 0.025 : Delay   # Delay = [0.6 ... 25] miliSec
418   
419  Input = KillVideo(clp)                                            # Get Audio Channel(s), kill Video content
420  Input = ConvertAudioTo16Bit(Input)                                # Convert to 16 bits integer
421  Input = GetChannel(Input, Channel)                                # Get Left (Right) Audio Channel
422  Input = ConvertToMono(Input)                                      # Convert to MONO signal
423  Input = Normalize(Input, 0.707)                                   # Normalize sound volume level to -3dB
424  
425  LeftChannel  = Input
426  
427  RightChannel = DelayAudio(Input, Delay)                           # Delay audio
428  RightChannel = Normalize(RightChannel, 0.707)                     # Normalize sound volume level to -3dB
429  
430  LChannel     = LeftChannel                                        # LChannel original LeftChannel
431  RChannel     = RightChannel                                       # RChannel original RightChannel
432  LeftChannel  = MixAudio(LeftChannel, RChannel, KMix, KMix2)       # LeftChannel  = LeftChannel  * KMix + RightChannel * KMix2 (addition)
433  RightChannel = MixAudio(RightChannel, LChannel, KMix, KMix2)      # RightChannel = RightChannel * KMix + LeftChannel  * KMix2 (addition)
434  
435  LeftChannel  = Normalize(LeftChannel, 1.0)                        # Normalize sound volume level to +0dB
436  RightChannel = Normalize(RightChannel, 1.0)                       # Normalize sound volume level to +0dB
437  
438  Stereo       = MergeChannels(LeftChannel, RightChannel)           # Merge MONO singals to STEREO signal
439  
440  return (Stereo)
441  
442  
443# For Debug only
444return (ConvertAudioTo16bit(LeftChannel))
445return (ConvertAudioTo16bit(RightChannel))
446return (ConvertAudioTo16bit(LChannel))
447return (ConvertAudioTo16bit(RChannel))
448}
449  
450  
451  
452#
453# New Stereo algorythm for MONO audio track
454#
455# L = L * k1 - R * (1 - k1)
456# R = R * k1 - L * (1 - k1)
457# Only DELAY between channels in Sec
458#
459#
460function PseudoStereo13(clip clp, int "Channel", float "Delay", float "KMix")
461{
462  # Default variables
463  #
464  Channel = Default(Channel, GLeftChannel)   # Set default Left Channel (Левый канал)
465  Delay   = Default(Delay,         GDelay)   # Delay in Right Channel (Задержка в Правом Канале)
466  KMix    = Default(KMix,            0.70)   # First Coefficient of MixAudio()
467  
468  
469  # Variables
470  #
471  # Input                                    # input sound Variable
472  # LeftChannel                              # Variable
473  # RightChannel                             # Variable
474  # LChannel                                 # Variable
475  # RChannel                                 # Variable
476  # KMix2                                    # Variable
477  # Stereo                                   # Variable
478   
479  
480  # Here is a code of function
481  #
482  KMix  = Abs(KMix)
483  KMix  = (KMix < 0.10) ? 0.10 : (KMix > 0.90) ? 0.90 : KMix              # KMix  = [0.10 ... 0.90]
484  KMix2 = -1.0 * (1.0 - KMix)
485  
486  Delay = Abs(Delay)
487  Delay = (Delay <= 0.0006) ? 0.0006 : (Delay > 0.025) ? 0.025 : Delay   # Delay = [0.6 ... 25] miliSec
488   
489  Input = KillVideo(clp)                                            # Get Audio Channel(s), kill Video content
490  Input = ConvertAudioTo16Bit(Input)                                # Convert to 16 bits integer
491  Input = GetChannel(Input, Channel)                                # Get Left (Right) Audio Channel
492  Input = ConvertToMono(Input)                                      # Convert to MONO signal
493  Input = Normalize(Input, 0.707)                                   # Normalize sound volume level to -3dB
494  
495  LeftChannel  = Input
496  
497  RightChannel = DelayAudio(Input, Delay)                           # Delay audio
498  RightChannel = Normalize(RightChannel, 0.707)                     # Normalize sound volume level to -3dB
499  
500  LChannel     = LeftChannel                                        # LChannel original LeftChannel
501  RChannel     = RightChannel                                       # RChannel original RightChannel
502  LeftChannel  = MixAudio(LeftChannel, RChannel, KMix, KMix2)       # LeftChannel  = LeftChannel  * KMix - RightChannel * KMix2 (substraction)
503  RightChannel = MixAudio(RightChannel, LChannel, KMix, KMix2)      # RightChannel = RightChannel * KMix - LeftChannel  * KMix2 (substraction)
504  
505  LeftChannel  = Normalize(LeftChannel, 1.0)                        # Normalize sound volume level to +0dB
506  RightChannel = Normalize(RightChannel, 1.0)                       # Normalize sound volume level to +0dB
507  
508  Stereo       = MergeChannels(LeftChannel, RightChannel)           # Merge MONO singals to STEREO signal
509  
510  return (Stereo)
511  
512  
513# For Debug only
514return (ConvertAudioTo16bit(LeftChannel))
515return (ConvertAudioTo16bit(RightChannel))
516return (ConvertAudioTo16bit(LChannel))
517return (ConvertAudioTo16bit(RChannel))
518}

Исправлено: Jenyok, 23.12.2014 17:34

Ваш ответ:

Нет значка Нет значка Вот тут! Лампочка Восклицание Вопрос Класс! Улыбка Злость Огорчение Поговорим? Краснею Подмигивание Ругаю ОдобряюBIUdelSxsupxsuboffsp spoilerqurlimgvideo• list1. list1 codeprecenter-hr-rusQWE→ЙЦУ
файлыочистить
Ваше имя: Авторизуйтесь Предпросмотр В полную форму
вставить выделенную цитату в окно ответа
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Страницы:Кликните, чтобы указать произвольную страницуназад1232324252627282930313233171172173далее
Последние обсуждения в Конференции
07:09Avowed. RPG РѕС‚ 1-РіРѕ лица студии Obsidian. Релиз 18.02.2024 Игры
07:08Будет ли РІРѕР№РЅР° Р РѕСЃСЃРёРё СЃ Украиной? Политика
07:06Козлы РЅР° дорогах. Чего делать? Авто
07:05Новая нейронка Маска Grok 3 ИИ
07:04Поделитесь СЃРІРѕРёРј настроением. Какое РѕРЅРѕ Сѓ вас сейчас? Флуд
07:02РћС‚ Windows Рє Linux Unix
06:57Черные дыры Наука
06:56AMS1117 вырубается РѕС‚ радиосигнала Эл. устройства
06:56Выбор холодильников дороже $400 Бытовая техника
06:55Телевизоры TCL - информация Рё опыт использования ДК TV
06:50Зачем люди РїСЊСЋС‚ алкогольные напитки? Cмысл, умеренное потребление, Р РѕСЃСЃРёСЏ спивается, детский алкоголизм, СЃСѓС…РѕР№ закон Рё РїСЂРѕС‡ СЃРїРѕСЂС‹ Рѕ пользе Рё вреде алкоголя - тут Общий
06:404K UHD плеер OPPO UDP-203 / UDP-205 ДК плееры
06:38Расскажите кстати анекдот (только ржачный, РЅРµ РїСЂРѕ Вовочку Рё РЅРµ РїСЂРѕ Штирлица) Юмор
06:32Агрессивный маркетинг AMD Рё как РѕРЅ влияет РЅР° неокрепшие СѓРјС‹ Тесты CPU
06:29Очистка РґРёСЃРєР° неправильно отображает объём освобождаемого пространства Тех. поддержка
06:17Отзывы Рѕ PrivalSystems (аналог skype) Интернет
05:46NAS СЃРІРѕРёРјРё руками НАС
05:46Как РІС‹ относитесь Рє абортам? Семья
05:23x86 против ARM Рё РґСЂСѓРіРёС… RISC-процессоров Процессоры
05:20РџСЂРѕРІРѕРґРЅРѕР№ интернет РѕС‚ Билайн (Beeline) Рынок
07:05General Motors закрывает завод, который выпускал кроссоверы Chevrolet Tracker и минивэны Buick GL8
06:51Ferrari очень ценит своих сотрудников: в этом году бонусы достигли рекордной суммы
06:31Замена Toyota Corolla, Kia Cerato и Hyundai Elantra — очень недорого. Представлен новый седан Nissan Sylphy
06:24Блокировка DeepSeek идёт на всех парах: популярный чат-бот запретили использовать на территории Южной Кореи
06:09BMW X3 2025 с колёсной базой как у BMW X5 оказался не только больше европейской версии, но и дешевле на целых 14 250 долларов в Китае
05:54BYD начнет массовую демонстрацию и установку полностью твердотельных аккумуляторов в свои машины уже через два года
05:46«Самый умный ИИ на Земле», который превосходит все существующие чат-боты. Илон Маск рассказал о Grok 3
05:33Эти герои не возвращаются. Космический корабль «Прогресс МС-28» отправится в последний путь 25 февраля
05:28Первый астронавт с инвалидностью получил разрешение на полет на МКС
23:57вчераСамый дорогой броневик Mercedes в России: Mercedes-Maybach S 680 4Matic от ателье Carat Duchatelet оценили в 225 млн рублей — спецсигналы в комплекте