1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Sony Vegas. Делимся опытом.

Тема в разделе "Обучение видео, обработка и приёмы", создана пользователем KotoPalych, 31 май 2013.

  1. Спасибо. Оперативно ) А я лез в панель инструментов и не находил её там
     
  2. Еще прошу подсказки. Не могу понять, почему из внешних приложений только из тотал командера могу файлы на тайм лайн перетащить? Из проводника или асдсее, например, перетаскивать совсем не желает. Мож что в настройках сбил?
     
  3. навряд ли. Вообще, у Вегаса очень тяжелые отношения с проводником Windows (как бы то ни было, а explorer внутри вегаса -- это все тот же перелицованный проводник Windows). Как-то начиная то ли с 10й то ли с 11й версии, программеры тетки решили что-то там модифицировать, что-то надстраивать, чтобы получить какой-то эфемерный дополнительный функционал в палетке explorer Вегаса. Ну и с тех пор все не очень ладно с этим. У меня например (на только что почившем в бозе компьютере) не хочет открываться содержимое папки, которая выбрана в дереве папок слева. Ну и вообще глюкавило. Так и живем...
     
  4. Здравствуйте, одноклубники!)
    Хочу спросить. Можно ли в Вегасе монтировать фильм в формате mts, а потом конвертировать в другой формат? Или сначала конвертировать, а потом монтировать? Пытался работать с форматом avi, Вегас то его не распознаёт совсем, то не корректно воспроизводит. Что посоветуете, ребята? В какой формат обычно конвертируют коммерческое видео, и на каком этапе лучше это делать?
    Заранее благодарю за ответы!
     
  5. Конечно можно. Я конечно не спец, но именно так и делаю, закидываю в Вегас файлы mts, режу, кадрирую, добавляю звук и т.п., а затем выводим в нужном формате.
     
  6. Спасибище! Буду пробовать!
     
  7. #87 5 мар 2015 в 20:05 | Sony Vegas. Делимся опытом. | Страница 5
    Последнее редактирование модератором: 5 мар 2015
    Конечно можно. Но менять формат не стоит, ибо это современный кодек H.264, который выводит превосходное качество изображения, не раздувая объем, как это делают все остальные при таком же качестве.

    В интернете. На торрентах. Это такие сайты, куда производители разного софта сливают специально созданные бесплатные версии своих платных программ, но не требующие оплаты, для тех, кто не может купить платные версии. В качестве бонуса для малоимущих. Как бы пожертвования. Но это только для бедных. Кто в состоянии покупать, тот покупает эти же программы по полной.
     
  8. Уважаемые знатоки, подскажите - можно ли (и как) с помощью Sony Vegas сделать таймлапс из MTS с видеокамеры (не фото) ?
     
  9. Думаю, что в видеоряде по всему промежутку равномерно удалить некую последовательность кадров и получится таймлапс. Но это кропотливая работа.
     
  10. Хм.. а задача интересная. Можно ли как нибудь сей процесс автоматизировать?

    - - - Добавлено - - -

    Нужно, так потери в качестве будут минимальны и минимум конфликтов при монтаже
     
  11. Конечно :)

    - - - Добавлено - - -

    PHP:
    /*
    * Copyright (c) 2004, Folding Rain Filmworks Inc.
    *
    * author: Joe Howes (joeh@guild1.com)
    *
    * I wrote this script while working on the making-of documentary
    * for The Libertine.  I was working with the two geniunses behind
    * the design of all the special effects for the Hallmark
    * mini-series "Dreamkeeper".  The director of that film is an
    * underrated and overawesome guy named Steve Barron, who pioneered
    * the look of about 90% of the television you saw in the nineties.
    * He was the first director to embrace speeding through a scene by
    * jump-cutting through hundreds of frames in a very short time,
    * resulting in an ultra-cool stutter effect that rocks ass.
    *
    * Anyway, Steve is a great guy, a super cool dude, and his work
    * quite frankly gives me a boner for filmmaking like no one else.
    *
    * http://www.imdb.com/name/nm0006625/
    *
    * USAGE:
    * Select one and only one video event.
    *
    *    Number of Jumps:    The number of jump cuts you want to end up with.
    *    Jump Length:        The length (in frames) of the visible jumps.
    *    Inter-Jump Length:  The length (in frames) of the bits between the
    *                          visible frames that will be removed.
    *
    *    Gather:    If "Don't", all the jumps will be left in place.
    *                If "Front", the jumps will be gathered together at the start
    *                    point of the original event.
    *                If "Back", the jumps will be gathered together at the end
    *                    of the cutting area, bumped right up against the remaining
    *                    event.
    *
    * After application, the jump cuts will be bumped right up against
    * the remaning portion of video.
    *
    * v1.1: Aug. 22, 2004
    */

    import System;
    import System.Collections;
    import System.Text;
    import System.IO;
    import System.Drawing;
    import System.Windows.Forms;
    import Sony.Vegas;


    /**
    * Just get the selected event (there can be only one) and Barronize it.
    */
    try {

        var 
    dlog = new BarronizerDialog();
        var 
    done:Boolean false;

        while (!
    done) {

            if (
    DialogResult.OK == dlog.ShowDialog()) {

                var 
    targetEvent:TrackEvent getSelectedEvent();

                if (
    targetEvent != null) {

                    
    // Validate input
                    
    var numJumps Number;
                    if (
    dlog.numJumps.Text == "*") {
                        
    numJumps = new Number(-1);
                    } else {
                        
    numJumps = new Number(dlog.numJumps.Text);
                    }
                    
    //MessageBox.Show("JOE: " + numJumps, "JOE");
                    /*if (numJumps.isNaN()) {
                        MessageBox.Show("Number of jumps must be either '*' or a number.", "WARNING");
                    }*/

                    // Put together the gather option
                    
    var gatherOption "NO";
                    if (
    dlog.gatherFrontRadio.Checked) {
                        
    gatherOption "FRONT";
                    } else if (
    dlog.gatherBackRadio.Checked) {
                        
    gatherOption "BACK";
                    }

                    
    // Put together the fade option
                    
    var fadeOption "NO";
                    if (
    dlog.fadeInRadio.Checked) {
                        
    fadeOption "IN";
                    } else if (
    dlog.fadeOutRadio.Checked) {
                        
    fadeOption "OUT";
                    }

                    
    // Barronize!
                    
    done barronize(targetEvent,
                                        
    numJumps,
                                        
    dlog.jumpLen.Text,
                                        
    dlog.interJumpLen.Text,
                                        
    gatherOption,
                                        
    fadeOption);
                }
            } else {
                
    done true;
            }
        }

        
    Vegas.UpdateUI();
    }
    catch (
    e) {
        
    MessageBox.Show(e"WARNING");
    }


    /**
    * Jump-cut through a number of frames to produce a cool skipping effect.
    */
    function barronize(evt:TrackEvent,
                        
    numJumps,
                        
    jumpLen,
                        
    interJumpLen,
                        
    gatherOption,
                        
    fadeOption) {

        var 
    theTrack Track;            // The track this is all happening on
        
    var theGroup TrackEventGroup;    // The group this track belongs to
        
    var node TrackEvent;            // A stutter node
        
    var internode TrackEvent;        // An internode
        
    var nodeTC Timecode;            // Node length in frames converted to timecode
        
    var internodeTC Timecode;        // Internode length in frames converted to timecode
        
    var originalStart Timecode;    // Original starting timecode of the event
        
    var effectLen Timecode;
        var 
    stutterNodeList : Array;
        var 
    tcCounter Timecode;
        var 
    index 0;



        
    // Some init
        
    theTrack evt.Track;
        
    theGroup evt.Group;
        
    nodeTC = new Timecode("00:00:00," jumpLen);
        
    internodeTC = new Timecode("00:00:00," interJumpLen);
        
    originalStart evt.Start;


        
    // If numJumps is -1, just make as many jumps as possible in the event
        // given the jumpLen and interJumpLen
        
    if (numJumps == -1) {
            var 
    evtFrames evt.Length.FrameCount;
            var 
    divisor = new Number(jumpLen) + new Number(interJumpLen);
            
    numJumps Math.floor(new Number(evtFrames divisor));
        }


        
    // Figure out the amount of time the stutter effect will consume of the event
        
    effectLen = new Timecode("00:00:00,00");

        for (var 
    0numJumpsi++) {
            
    effectLen += nodeTC internodeTC;
        }

        
    // If there's not enough event, let 'em know and bail
        
    if (effectLen evt.Length) {
            
    MessageBox.Show("Event not long enough.""WARNING");
            return 
    false;
        }

        
    stutterNodeList = new Array();
        
    node evt;
        
    stutterNodeList[index++] = node;

        
    // -- SPLIT --
        
    for (var 0numJumpsi++) {

            
    // Make a node (no, this is not reversed, we are making a NODE)
            
    internode node.Split(nodeTC);

            
    // Make an internode (no, this is not reversed, we are making an INTERNODE)
            
    node internode.Split(internodeTC);

            
    // If the node is not the final leftover chunk, add it to the list of
            // stutter nodes that need to be bumped up against the leftover event
            
    if (< (numJumps 1)) {
                
    stutterNodeList[index++] = node;
            }

            
    // Remove the internode
            
    theTrack.Events.Remove(internode);
        }


        
    // -- GATHER --
        // If there's no gathering to be done, skip it
        
    if (gatherOption != "NO") {

            
    // Default to FRONT
            
    tcCounter originalStart;

            if (
    gatherOption == "BACK") {

                
    // Now we move all the stutter nodes up against the leftover event
                
    tcCounter node.Start;

                
    // Count back nodeTC frames for every stutter node
                
    for (var 0numJumpsi++) {
                    
    tcCounter tcCounter nodeTC;
                }

            }

            
    // Adjust them all
            
    for (var 0stutterNodeList.lengthi++) {
                
    node stutterNodeList[i];
                
    /*if (groupBaseList.Contains(node)) {
                    theGroup.Remove(node);
                }*/
                
    node.AdjustStartLength(tcCounternodeTCtrue);
                
    tcCounter += nodeTC;
            }

        }


        
    // -- FADE -- not implemented yet
        // If there's no fading to be done, skip it
        
    if (fadeOption != "NO") {
        }

        return 
    true;
    }


    /**
    * Function: getSelectedEvent()
    *
    * Find the selected video event while making sure that the only event selected
    * in the entire project is a video event, and there is only one.
    */
    function getSelectedEvent() {

        var 
    done:Boolean false;
        var 
    targetEvent:TrackEvent null;
        var 
    selectCount 0;

        
    // Search all groups
        
    for (var track in Vegas.Project.Tracks) {

            for (var 
    evnt in track.Events) {
                if (
    evnt.Selected) {
                    
    targetEvent evnt;
                    
    selectCount++;
                }
            }

        }

        if (
    selectCount 0) {
            throw(
    "No video events selected.");
        }

        if (
    selectCount 1) {
            throw(
    "More than one event selected.  Select one and only one video event.");
        }

        if (
    targetEvent == null || targetEvent.IsAudio()) {
            throw(
    "No video events selected.");
        }

        return 
    targetEvent;
    }


    /**
    * My homage to Steve...his very own dialog box.
    */
    class BarronizerDialog extends Form {

        var 
    numJumps TextBox;
        var 
    jumpLen TextBox;
        var 
    interJumpLen TextBox;
        var 
    barronizeButton Button;
        var 
    cancelButton Button;
        var 
    cuttingParamGroup GroupBox;
        var 
    gatherNoRadio RadioButton;
        var 
    gatherFrontRadio RadioButton;
        var 
    gatherBackRadio RadioButton;
        var 
    gatherParamGroup GroupBox;
        var 
    fadeNoRadio RadioButton;
        var 
    fadeInRadio RadioButton;
        var 
    fadeOutRadio RadioButton;
        var 
    fadeParamGroup GroupBox;


        function 
    BarronizerDialog() {

            
    this.Text "Barronizer";
            
    this.FormBorderStyle System.Windows.Forms.FormBorderStyle.FixedDialog;
            
    this.MaximizeBox false;
            
    this.StartPosition FormStartPosition.CenterScreen;

            
    this.numJumps = new TextBox();
            
    this.jumpLen = new TextBox();
            
    this.interJumpLen = new TextBox();
            
    this.Width 237;
            
    this.Height 219;


            
    // numJumps
            
    var numJumpsLabel:Label = new Label();
            
    numJumpsLabel.Location = new System.Drawing.Point(825);
            
    numJumpsLabel.Name "numJumpsLabel";
            
    numJumpsLabel.Size = new System.Drawing.Size(10016);
            
    numJumpsLabel.TabIndex 2;
            
    numJumpsLabel.Text "Number of Jumps:";

            
    numJumps.Location = new System.Drawing.Point(11022);
            
    numJumps.Name "numJumps";
            
    numJumps.Size = new System.Drawing.Size(8020);
            
    numJumps.TabIndex 1;
            
    numJumps.Text "*";


            
    // jumpLen
            
    var jumpLenLabel:Label = new Label();
            
    jumpLenLabel.Location = new System.Drawing.Point(850);
            
    jumpLenLabel.Name "jumpLenLabel";
            
    jumpLenLabel.Size = new System.Drawing.Size(10016);
            
    jumpLenLabel.TabIndex 2;
            
    jumpLenLabel.Text "Jump Length:";

            
    jumpLen.Location = new System.Drawing.Point(11047);
            
    jumpLen.Name "jumpLen";
            
    jumpLen.Size = new System.Drawing.Size(8020);
            
    jumpLen.TabIndex 1;
            
    jumpLen.Text "2";


            
    // interJumpLen
            
    var interJumpLenLabel:Label = new Label();
            
    interJumpLenLabel.Location = new System.Drawing.Point(875);
            
    interJumpLenLabel.Name "interJumpLenLabel";
            
    interJumpLenLabel.Size = new System.Drawing.Size(10016);
            
    interJumpLenLabel.TabIndex 2;
            
    interJumpLenLabel.Text "Inter-Jump Length:";

            
    interJumpLen.Location = new System.Drawing.Point(11072);
            
    interJumpLen.Name "interJumpLen";
            
    interJumpLen.Size = new System.Drawing.Size(8020);
            
    interJumpLen.TabIndex 1;
            
    interJumpLen.Text "12";


            
    // cuttingParamGroup
            
    cuttingParamGroup = new GroupBox();
            
    cuttingParamGroup.Controls.Add(numJumpsLabel);
            
    cuttingParamGroup.Controls.Add(numJumps);
            
    cuttingParamGroup.Controls.Add(jumpLenLabel);
            
    cuttingParamGroup.Controls.Add(jumpLen);
            
    cuttingParamGroup.Controls.Add(interJumpLenLabel);
            
    cuttingParamGroup.Controls.Add(interJumpLen);
            
    cuttingParamGroup.Location = new System.Drawing.Point(88);
            
    cuttingParamGroup.Name "cuttingParamGroup";
            
    cuttingParamGroup.Size = new System.Drawing.Size(216100);
            
    cuttingParamGroup.TabIndex 4;
            
    cuttingParamGroup.TabStop false;
            
    cuttingParamGroup.Text "Cutting Options";

            
    this.Controls.Add(cuttingParamGroup);


            
    // Gathering
            
    gatherNoRadio = new RadioButton();
            
    gatherNoRadio.Location = new System.Drawing.Point(1020);
            
    gatherNoRadio.Size = new System.Drawing.Size(5016);
            
    gatherNoRadio.Name "gatherNoRadio";
            
    gatherNoRadio.TabIndex 1;
            
    gatherNoRadio.Text "Don't";

            
    gatherFrontRadio = new RadioButton();
            
    gatherFrontRadio.Location = new System.Drawing.Point(8520);
            
    gatherFrontRadio.Size = new System.Drawing.Size(5016);
            
    gatherFrontRadio.Name "gatherFrontRadio";
            
    gatherFrontRadio.TabIndex 1;
            
    gatherFrontRadio.Text "Front";

            
    gatherBackRadio = new RadioButton();
            
    gatherBackRadio.Location = new System.Drawing.Point(16020);
            
    gatherBackRadio.Size = new System.Drawing.Size(5016);
            
    gatherBackRadio.Name "gatherBackRadio";
            
    gatherBackRadio.TabIndex 1;
            
    gatherBackRadio.Text "Back";
            
    gatherBackRadio.Checked true;


            
    // Gathering group
            
    gatherParamGroup = new GroupBox();
            
    gatherParamGroup.Controls.Add(gatherNoRadio);
            
    gatherParamGroup.Controls.Add(gatherFrontRadio);
            
    gatherParamGroup.Controls.Add(gatherBackRadio);
            
    gatherParamGroup.Location = new System.Drawing.Point(8115);
            
    gatherParamGroup.Name "gatherParamGroup";
            
    gatherParamGroup.Size = new System.Drawing.Size(21645);
            
    gatherParamGroup.TabIndex 4;
            
    gatherParamGroup.TabStop false;
            
    gatherParamGroup.Text "Gathering Options";

            
    this.Controls.Add(gatherParamGroup);


            
    // Fading
            
    fadeNoRadio = new RadioButton();
            
    fadeNoRadio.Location = new System.Drawing.Point(1020);
            
    fadeNoRadio.Size = new System.Drawing.Size(5016);
            
    fadeNoRadio.Name "fadeNoRadio";
            
    fadeNoRadio.TabIndex 1;
            
    fadeNoRadio.Text "Don't";
            
    fadeNoRadio.Checked true;

            
    fadeInRadio = new RadioButton();
            
    fadeInRadio.Location = new System.Drawing.Point(8520);
            
    fadeInRadio.Size = new System.Drawing.Size(5016);
            
    fadeInRadio.Name "fadeInRadio";
            
    fadeInRadio.TabIndex 1;
            
    fadeInRadio.Text "In";

            
    fadeOutRadio = new RadioButton();
            
    fadeOutRadio.Location = new System.Drawing.Point(16020);
            
    fadeOutRadio.Size = new System.Drawing.Size(5016);
            
    fadeOutRadio.Name "fadeOutRadio";
            
    fadeOutRadio.TabIndex 1;
            
    fadeOutRadio.Text "Out";


            
    // Fading group
            
    fadeParamGroup = new GroupBox();
            
    fadeParamGroup.Controls.Add(fadeNoRadio);
            
    fadeParamGroup.Controls.Add(fadeInRadio);
            
    fadeParamGroup.Controls.Add(fadeOutRadio);
            
    fadeParamGroup.Location = new System.Drawing.Point(8170);
            
    fadeParamGroup.Name "fadeParamGroup";
            
    fadeParamGroup.Size = new System.Drawing.Size(21645);
            
    fadeParamGroup.TabIndex 4;
            
    fadeParamGroup.TabStop false;
            
    fadeParamGroup.Text "Fade Options";

            
    //this.Controls.Add(fadeParamGroup);


            // Buttons
            
    barronizeButton = new Button();
            
    barronizeButton.DialogResult System.Windows.Forms.DialogResult.OK;
            
    barronizeButton.Text "Barronize!";
            
    barronizeButton.Left 65;
            
    barronizeButton.Top 165;
            
    AcceptButton barronizeButton;
            
    Controls.Add(barronizeButton);

            
    cancelButton = new Button();
            
    cancelButton.DialogResult System.Windows.Forms.DialogResult.Cancel;
            
    cancelButton.Text "Cancel";
            
    cancelButton.Left 148;
            
    cancelButton.Top 165;
            
    CancelButton cancelButton;
            
    Controls.Add(cancelButton);

        }

    }
     
  12. А вообще такую и разную другую штуку умеет делать Excalibur
    http://www.jetdv.com/excalibur/home.php
    За волшебным пинком для нее можно в личку
     
  13. не знаток в вегасе, но подобное делал в премьере изменением скорости воспроизведения участка с псевдо таймлапсом. лишние кадры соответственно выкидываются автоматически при ускорении водеоучастка.
     
  14. Таким способом, скорее всего, получится жуткий строб на видео.
    Я бы попробовал применить в таймлайне ускоряющий коэффициент. Не помню только, какое там максимально доступное значение.
     
  15. Вегас умеет так, надо с зажатым Ctrl потянуть за конец ивента к его началу, но это будет 4x. Потом на этот ивент можно накинуть огибающую Velocity и она даёт ещё 3x. Итого 12кратное ускорение. Если это удовлетворяет - ок. Надо только не забыть в свойствах ивента поставить Disable Resample иначе будет месиво из motion blur-а.
     
  16. #96 6 мар 2015 в 10:39 | Sony Vegas. Делимся опытом. | Страница 5
    Последнее редактирование модератором: 6 мар 2015
    Спасибо всем откликнувшимся!
    Вегас позволяет увеличить скорость только в 4 раза. (возможно и сильнее, но я не знаю как). А в камере вроде есть режим 6 кадров в секунду. Если использовать эти две фичи совместно, то может быть что-то вразумительное получится - надо попробовать.

    Это интересно. Ещё бы понять как сделать "огибающую Velocity" (опыта пока маловато).
     
  17. Правой кнопкой по ивенту, Insert/Remove Envelope -> Velocity
    "Envelope" = "огибающая", это будет зелёная полоса ровно посередине ивента, на ней можно ставить точки и ускорять/замедлять в определенных частях. Можно тупо утащить ее наверх (не ставя точек) и тогда ко всему ивенту применится скорость 300%. Следите за тем, что длина ивента не изменится, и, скорее всего, футаж будет три раза проигрываться по кругу, если Вы не подкорректируете длину ивента (и у Вас в свойствах ивента стоит [v] Loop, это настройка включена по умолчанию в Вегасе). Ищите вырез треугольником сверху на ивенте, чтобы увидеть, где реальный футаж закончился и пошло повторение
     
  18. #98 6 мар 2015 в 14:46 | Sony Vegas. Делимся опытом. | Страница 5
    Последнее редактирование модератором: 6 мар 2015
    2Beast2537 Большое спасибо! Получилось!
    А с Disable Resample... стояло Smart Resample - что-то разницы на превью не почувствовал.

    PS: Ага вот заметил разницу - после рендеринга при проигрывании m2ts в VLC на стоп кадре!
     
  19. Всё зависит от количества движения в кадре Ж-)
    На время просчёта также этот resample сильно влияет.
    Конечно, motion blur штука хорошая во многих применениях, но в Вегасе реализована погановастенько. Всё что мне нужно блюрить по движению я сую в афтер (
     
  20. Насчет автоматизации я не знаю. Я знаю как отсчитывать покадрово. Но как по всей длине вырезать равномерно определенное количество кадров-это не знаю. Хотя, если вдуматься про таймлапс из целого видео фильма-то это получается нечто не выполнимое. Потому, что надо снимать по крайней мере очень длинный непрерывный фильм и оттуда вырезать абсолютное большинство кадров, что бы получился таймлапс. Тем более таймлапс должен быть хотя бы несколько минут. Но кто будет непрерывно снимать, например три часа, что бы получилось две минуты фильма в стиле таймлапс? Допустим заход солнца.

    Про формат MTS или m2ts -это единственный на сей день формат, кодек H.264, в котором сейчас снимают все современный камеры и фотоаппараты. Причем одновременно монтирую кадры из видеокамеры Sony хендикам и фотоаппарата Sony a-77. Камера сниает в 25 кадров, а фотоаппарат снимает в 50. Делаю фильм частотой в 50 кадров. Никаких конфликтов с разными форматами нет. Это очень хорошо. Не вижу смысл вообще его конвертировать во что-то другое. Я сам уже несколько лет снимаю именно в этом формате, к тому же сразу задаю максимальный битрейт, что бы не потерять в качестве. Даже фильм, размером с полчаса, занимает вполне компактный размер гигов 8. Вполне разумный объем по нашим меркам. К чему резать самое драгоценное-качество картинки, конвертируя в другое? Ведь это память на всю жизнь. Потом качества не добавишь. Надо думать об этом.
     

Поделиться этой страницей