Shotcut - a free, open source, cross-platform video editor

build-shotcut-linux build-shotcut-macos build-shotcut-windows

Shotcut - a free, open source, cross-platform video editor

screenshot

Install

Binaries are regularly built and are available at https://www.shotcut.org, on the Download page.

Contributors

Dependencies

Shotcut's direct (linked or hard runtime) dependencies are:

  • MLT: multimedia authoring framework
  • Qt 5: application and UI framework
  • FFmpeg: multimedia format and codec libraries
  • Frei0r: video plugins
  • SDL: cross-platform audio playback

See https://shotcut.org/credits/ for a more complete list including indirect and bundled dependencies.

Licence

GPLv3. See COPYING.

How to build

Warning: building shotcut should only be reserved to beta testers or contributors who know what they are doing.

Qt Creator

The fastest way to build and try Shotcut development version is probably using Qt Creator.

To make this easier, we provide SDKs on the web site with each release that includes Shotcut and all of its dependencies. These SDK pages also include setup instructions and tips on how to compile MLT and other dependencies after updating.

From command line

First, check dependencies are satisfied and various paths correctly set to find different libraries and include files (Qt 5, MLT, frei0r and so forth).

Build Makefile:

qmake PREFIX=/usr/local/

Compile shotcut:

make -j8
make install

If you do not make install Shotcut will fail when you run it because it cannot locate its QML files. If you want to run shotcut from a build folder without installing you can make a symbolic link to the qml folder. It depends on where you build folder is, but assuming it is a sibling of the source tree folder:

cd build
mkdir -p share/shotcut 
cd share/shotcut
ln -s ../../../shotcut/src/qml

Translation

If you want to translate Shotcut to another language, please use Transifex.

Owner
MLT Framework
Multimedia Processing Framework
MLT Framework
Comments
  • Crackling audio during loud parts (race car)

    Crackling audio during loud parts (race car)

    Hello,

    I am using v16.06.08 on OSX 10.9.5 to edit some motorsports footage, that I shot recently. Sadly, in the encoded video (H.265, MP4, AC3, constant 256 kbps, 48 kHz) the audio gets crackling when a loud car passes by. It sounds a bit like you would crinkle plastic foil. It is not loud, but still disturbing. The source audio (2 ch., AC3, 256 kbps, 48 kHz) is fine. So it's not my microphone that got to it's limits here. The source MTS-files are played correctly by Quicktime as well as MPlayer and VLC. Since the last two are likely to use FFMPEG codecs, just like Shotcut does, it is maybe not the codec that is faulty. Actually, the audio is already crackling while just watching the single movies in Shotcut. I have already tried different combinations of H.264, H.265, AC3 and AAC to work out, in which case the audio could be fine. And I've gone back to v16.02 (before FFMPEG was upgraded to v3.0). Nothing helped.

    I already had that same problem earlier in the year in a rallye video, where I guessed, that it came from my feet squeezing the grass under them. I also know (!), that everything worked fine last year with previous Shotcut versions (straight piped M1 Procar is evidence enough).

    I hope, that you have got all the information you need. It would be nice to see this fixed.

    Thanks a lot,

    Flo

  • Error stabilizing the video int the version 19.06

    Error stabilizing the video int the version 19.06

    Operating System: Archlinux 64amd

    Software Version: Shotcut 19.06

    When exporting a project with the stabilization filter, the video shows small points and white lines. Attached some screenshots. This has been happening since version 19.02. vlcsnap-00003 vlcsnap-00002

  • debian packages

    debian packages

    It would be great to install shotcut through debian packages, either :

    • simply through a .deb file
    • providing a third party debian source
    • through an ubuntu PPA
    • by proposing shotcut to be distributed by debian and/or ubuntu
  • flatpak: Shotcut is now available on Flathub

    flatpak: Shotcut is now available on Flathub

    I want to inform you, that Shotcut is now available on Flathub: https://flathub.org/apps/details/org.shotcut.Shotcut

    build manifest: https://github.com/flathub/org.shotcut.Shotcut

    You will need at least flatpak version 0.11.4 to have it work correctly.

  • stabilize filter ui: Move the 'Analyze' button up under the 'Analyze …

    stabilize filter ui: Move the 'Analyze' button up under the 'Analyze …

    …Options' to make it clearer that this button is only related to the analyze properties

    Imo this makes it clearer to the user that the analyze goes with the analyze settings and that the other settings don't require you to press the analyze button again.

    It would be even neater if we could auto-analyze when the user enabled the filter, but that would require some hysteresis and would have to handle the case where the user didn't wait for the analysis to complete etc.

    Another idea is tracking what settings were used to indicate to the user when analyze had to be run again. That might be a simpler change that better fits with how the current filter uis are designed.

  • BUG: Japanese text error

    BUG: Japanese text error

    When use dynamic text filter, when I input such as "にほん", or other odd number of Japanese text, and split the video track, the dynamic text filter in new one clip does not show correctly, it shows

    20151217182245

    same error ocurs when drag the video file to timeline which use odd number of Japanese text, such as にほん.mp4 に3ほん.MP4 にほん2.MP4 And timeline is black.

  • Video Export Failed (Windows 10 64bit; Shotcut 32bit 18.05.08).

    Video Export Failed (Windows 10 64bit; Shotcut 32bit 18.05.08).

    Hello, I just installed the latest version of the Shotcut. And I just do some simple video editing and it's failed. Here is the xml and the log.

    <?xml version='1.0' encoding='utf-8'?>
    <mlt version="6.7.0" producer="main bin" LC_NUMERIC="en_US" title="Shotcut version 18.05.08" root="C:\Program Files\Shotcut">
      <profile width="1920" display_aspect_num="16" height="1080" colorspace="709" progressive="1" frame_rate_num="25" description="HD 1080p 25 fps" sample_aspect_den="1" display_aspect_den="9" sample_aspect_num="1" frame_rate_den="1"/>
      <consumer crf="21" movflags="+faststart" f="mp4" g="125" rescale="bilinear" progressive="1" channels="2" aspect="1.77778" bf="3" preset="fast" ab="384k" real_time="-4" deinterlace_method="yadif" r="25" vcodec="libx264" threads="0" mlt_service="avformat" target="D:/rrr.mp4" top_field_first="2" height="1080" ar="48000" width="1920" acodec="aac"/>
      <producer out="00:00:29.960" in="00:00:00.000" title="Anonymous Submission" id="producer0">
        <property name="length">00:00:30.000</property>
        <property name="eof">pause</property>
        <property name="resource">D:/后会无期.HD1024高清国语中字.mp4</property>
        <property name="audio_index">1</property>
        <property name="video_index">0</property>
        <property name="mute_on_pause">0</property>
        <property name="mlt_service">avformat-novalidate</property>
        <property name="seekable">1</property>
        <property name="aspect_ratio">1</property>
        <property name="shotcut:hash">8abfdb1910586f3d1dc055fb141334e2</property>
        <property name="ignore_points">0</property>
        <property name="shotcut:caption">后会无期.HD1024高清国语中字.mp4</property>
        <property name="shotcut:detail">D:/后会无期.HD1024高清国语中字.mp4</property>
        <property name="shotcut:comment"/>
        <property name="shotcut:skipConvert">1</property>
        <property name="global_feed">1</property>
        <property name="xml">was here</property>
      </producer>
      <producer out="03:59:59.960" in="00:00:00.000" title="Anonymous Submission" id="producer1">
        <property name="length">04:00:00.000</property>
        <property name="eof">pause</property>
        <property name="resource">D:/FFmpegKit/TestPic/14182277_xl.jpg</property>
        <property name="ttl">1</property>
        <property name="aspect_ratio">1</property>
        <property name="progressive">1</property>
        <property name="seekable">1</property>
        <property name="mlt_service">qimage</property>
        <property name="shotcut:hash">f4a264a5b72e41eb19eb31d59daeb87c</property>
        <property name="ignore_points">0</property>
        <property name="global_feed">1</property>
        <property name="xml">was here</property>
      </producer>
      <producer out="03:59:59.960" in="00:00:00.000" title="Anonymous Submission" id="producer2">
        <property name="length">04:00:00.000</property>
        <property name="eof">pause</property>
        <property name="resource">D:/FFmpegKit/TestPic/4a4768dfed35099ebde9084cf7ace2c6.jpg</property>
        <property name="ttl">1</property>
        <property name="aspect_ratio">1</property>
        <property name="progressive">1</property>
        <property name="seekable">1</property>
        <property name="loop">1</property>
        <property name="mlt_service">pixbuf</property>
        <property name="shotcut:hash">e43884519d360a789cd0bc583ad47104</property>
        <property name="ignore_points">0</property>
        <property name="global_feed">1</property>
        <property name="xml">was here</property>
      </producer>
      <playlist title="Shotcut version 18.05.08" id="main bin" autoclose="1">
        <property name="shotcut:projectAudioChannels">2</property>
        <property name="xml_retain">1</property>
        <entry out="00:00:29.960" in="00:00:00.000" producer="producer0"/>
        <entry out="00:00:05.240" in="00:00:00.000" producer="producer1"/>
        <entry out="00:00:05.240" in="00:00:00.000" producer="producer2"/>
      </playlist>
      <producer out="00:00:12.960" in="00:00:00.000" id="black">
        <property name="length">00:00:13.000</property>
        <property name="eof">pause</property>
        <property name="resource">black</property>
        <property name="aspect_ratio">1</property>
        <property name="mlt_service">color</property>
        <property name="set.test_audio">0</property>
      </producer>
      <playlist id="background" autoclose="1">
        <entry out="00:00:12.960" in="00:00:00.000" producer="black"/>
      </playlist>
      <producer out="00:00:29.960" in="00:00:00.000" title="Anonymous Submission" id="producer3">
        <property name="length">00:00:30.000</property>
        <property name="eof">pause</property>
        <property name="resource">D:/后会无期.HD1024高清国语中字.mp4</property>
        <property name="audio_index">1</property>
        <property name="video_index">0</property>
        <property name="mute_on_pause">0</property>
        <property name="mlt_service">avformat-novalidate</property>
        <property name="seekable">1</property>
        <property name="aspect_ratio">1</property>
        <property name="shotcut:hash">8abfdb1910586f3d1dc055fb141334e2</property>
        <property name="ignore_points">0</property>
        <property name="shotcut:caption">后会无期.HD1024高清国语中字.mp4</property>
        <property name="shotcut:detail">D:/后会无期.HD1024高清国语中字.mp4</property>
        <property name="shotcut:comment"/>
        <property name="shotcut:skipConvert">1</property>
        <property name="global_feed">1</property>
        <property name="xml">was here</property>
        <filter out="00:00:29.960" id="filter0">
          <property name="background">colour:0</property>
          <property name="mlt_service">affine</property>
          <property name="shotcut:filter">affineSizePosition</property>
          <property name="transition.fill">1</property>
          <property name="transition.distort">0</property>
          <property name="transition.rect">0 149 1920 756 1</property>
          <property name="transition.valign">middle</property>
          <property name="transition.halign">center</property>
          <property name="transition.threads">0</property>
        </filter>
      </producer>
      <playlist id="playlist0" autoclose="1">
        <property name="shotcut:video">1</property>
        <property name="shotcut:name">V1</property>
        <entry out="00:00:12.960" in="00:00:00.000" producer="producer3"/>
      </playlist>
      <producer out="00:00:05.240" in="00:00:00.000" title="Anonymous Submission" id="producer4">
        <property name="length">04:00:00.000</property>
        <property name="eof">pause</property>
        <property name="resource">D:/FFmpegKit/TestPic/4a4768dfed35099ebde9084cf7ace2c6.jpg</property>
        <property name="ttl">1</property>
        <property name="aspect_ratio">1</property>
        <property name="progressive">1</property>
        <property name="seekable">1</property>
        <property name="loop">1</property>
        <property name="mlt_service">pixbuf</property>
        <property name="shotcut:hash">e43884519d360a789cd0bc583ad47104</property>
        <property name="ignore_points">0</property>
        <property name="global_feed">1</property>
        <property name="xml">was here</property>
      </producer>
      <playlist id="playlist1" autoclose="1">
        <property name="shotcut:video">1</property>
        <property name="shotcut:name">V2</property>
        <blank length="00:00:02.840"/>
        <entry out="00:00:05.240" in="00:00:00.000" producer="producer4"/>
      </playlist>
      <tractor out="00:00:12.960" global_feed="1" in="00:00:00.000" title="Shotcut version 18.05.08" id="tractor0">
        <property name="shotcut">1</property>
        <property name="shotcut:projectAudioChannels">2</property>
        <track producer="background"/>
        <track producer="playlist0"/>
        <track producer="playlist1"/>
        <transition id="transition0">
          <property name="a_track">0</property>
          <property name="b_track">1</property>
          <property name="mlt_service">mix</property>
          <property name="always_active">1</property>
          <property name="sum">1</property>
        </transition>
        <transition id="transition1">
          <property name="a_track">0</property>
          <property name="b_track">1</property>
          <property name="version">0.9</property>
          <property name="mlt_service">frei0r.cairoblend</property>
          <property name="disable">1</property>
        </transition>
        <transition id="transition2">
          <property name="a_track">0</property>
          <property name="b_track">2</property>
          <property name="mlt_service">mix</property>
          <property name="always_active">1</property>
          <property name="sum">1</property>
        </transition>
        <transition id="transition3">
          <property name="a_track">1</property>
          <property name="b_track">2</property>
          <property name="version">0.9</property>
          <property name="mlt_service">frei0r.cairoblend</property>
          <property name="disable">0</property>
        </transition>
      </tractor>
    </mlt>
    
    

    ` [libx264 @ 08ad60e0] using SAR=1/1 [libx264 @ 08ad60e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 08ad60e0] profile High, level 4.0 [libx264 @ 08ad60e0] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=2 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=6 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=1 keyint=125 keyint_min=12 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=crf mbtree=1 crf=21.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 [h264 @ 0e9a66e0] Reinit context to 1024x416, pix_fmt: yuv420p [h264 @ 0e9a7980] Reinit context to 1024x416, pix_fmt: yuv420p [h264 @ 245b8440] Reinit context to 1024x416, pix_fmt: yuv420p [producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2 [producer avformat-novalidate] D:/后会无期.HD1024高清国语中字.mp4 checking VFR: pkt.duration 1000 [h264 @ 0e9d9080] Reinit context to 1024x416, pix_fmt: yuv420p [h264 @ 0e9d9080] Reinit context to 1024x416, pix_fmt: yuv420p [mp4 @ 08c434e0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. [mp4 @ 08c434e0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. [h264 @ 0e9d9080] Reinit context to 1024x416, pix_fmt: yuv420p [h264 @ 0e9d9080] Reinit context to 1024x416, pix_fmt: yuv420p [h264 @ 0e9d9080] Reinit context to 1024x416, pix_fmt: yuv420p Current Frame: 99, percentage: 30 Current Frame: 100, percentage: 30 Current Frame: 101, percentage: 31 [h264 @ 0e9d9080] Reinit context to 1024x416, pix_fmt: yuv420p Current Frame: 102, percentage: 31 Current Frame: 104, percentage: 32 Current Frame: 105, percentage: 32 Current Frame: 106, percentage: 32 Current Frame: 107, percentage: 32 Current Frame: 108, percentage: 33 Current Frame: 109, percentage: 33 Current Frame: 110, percentage: 33 Current Frame: 112, percentage: 34 Current Frame: 114, percentage: 35 Current Frame: 115, percentage: 35 Current Frame: 116, percentage: 35 [h264 @ 0e9d9080] Reinit context to 1024x416, pix_fmt: yuv420p Current Frame: 117, percentage: 36 Current Frame: 118, percentage: 36 Failed with exit code -1073741819

    `

    What's going wrong with this version of Shotcut? Cause I have done the same operation on the Shotcut(18.03.06) and everything goes well.

  • Keyboard focus gets stuck sometimes

    Keyboard focus gets stuck sometimes

    One way to reproduce:

    • Create a video or audio track
    • Type something into trackhead text field
    • Click once on toolbar (or any other qwidget-based component)
    • Click in the text field again

    The text field will not show the caret, and you cannot type anything into the field. Clicking on another qml-based embedded component (for example the filter menu) then clicking back is a workaround for restoring the focus.

    I have reproduced this behavior outside shotcut in a minimal example with a qwidget and qquickview, using createWindowContainer. I then wrote it into a QTest testcase:

    #include <QWidget>
    #include <QDebug>
    #include <QTest>
    
    class Bug : public QObject
    {
        Q_OBJECT
    private slots:
        void testDoubleWindowActivation();
    };
    
    void Bug::testDoubleWindowActivation()
    {
        QWindow * view = new QWindow;
    
        QWidget w;
        QWidget * container = QWidget::createWindowContainer(view, &w);
        w.show();
    
        QTest::qWait(100);
        qDebug() << qApp->focusObject();
        QCOMPARE(qApp->focusObject(), &w);
    
        view->requestActivate();
        QTest::qWait(100);
        qDebug() << qApp->focusObject();
        QCOMPARE(qApp->focusObject(), view);
    
        w.setFocus();
        QTest::qWait(100);
        qDebug() << qApp->focusObject();
        QCOMPARE(qApp->focusObject(), &w);
    
        view->requestActivate();
        QTest::qWait(100);
        qDebug() << qApp->focusObject();
        //the following check fails because focusObject was never set back to the qquickview
        QCOMPARE(qApp->focusObject(), view);
    }
    
    QTEST_MAIN(Bug)
    #include "main.moc"
    

    Observing focus events inside qt, I see that at least all the way up to the QWindow+wm-event layer there is no trace of focus events coming in when clicking on the qml component, so I don't see myself fixing this easily without help. Reading bug reports and googling around, I get the feeling that QQuickWidget is regarded as a more robust way of embedding qquickviews. I modified my testcase to use QQuickWidget, and now the focus actually behaved as expected.

    I'm looking into having shotcut using qquickwidgets instead of createWindowContainer for embedded qml components.

  • qmelt.exe hangs forever

    qmelt.exe hangs forever

    I am getting an issue where when I am rendering a video, qmelt.exe will hang with 0% CPU usage until it is force quit. It does not produce an error It does not say "Job Failed" in the main shotcut window It just stops at about 60% seemingly forever (I force killed the application after 10 minutes of 0% CPU usage)

    The project files can be found here (I included all of them. Its a big download) *If any are missing, please let me know their filenames so I can add them to the archive Link The main project file is named "nightfall.mlt"

    I believe that it is an issue with the Audio Spectrum Visualisation filter.

    I was able to produce this error on a machine with the following specs i7 6500U 2 x 4 GB of DDR4 RAM 256GB SSD + 1TB HDD Windows 10 Home Version 1709

  • 14.07 crashes when you try to launch it in windows 8

    14.07 crashes when you try to launch it in windows 8

    Great tool, i just downloaded and installed the new version on windows 8 on a brand new laptop and it crashes when you try to launch it. I have GPU 4.0+ . any ideas?

    Log file is below.

    [Info   ] <Application::Application(int&, char**)> Starting Shotcut version 14.07.01 
    [Info   ] <Application::Application(int&, char**)> Windows version 144 
    [Info   ] <Application::Application(int&, char**)> number of logical cores = 4 
    [Info   ] <Application::Application(int&, char**)> locale = QLocale(English, Default, UnitedStates) 
    [Info   ] <Application::Application(int&, char**)> install dir = "C:/Program Files (x86)/Shotcut" 
    [Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> language "en_US" 
    [Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> deinterlacer "onefield" 
    [Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> external monitor "" 
    [Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> GPU processing false 
    [Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> interpolation "nearest" 
    [Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> video mode "" 
    [Debug  ] <static ShotcutSettings& ShotcutSettings::singleton()> realtime true 
    [Debug  ] <static void MainWindow::changeTheme(const QString&)> begin 
    [Debug  ] <static void MainWindow::changeTheme(const QString&)> end 
    [Debug  ] <MainWindow::MainWindow()> begin 
    [Info   ] <GLTestWidget::GLTestWidget(QWidget*)> OpenGL context version 4 0 
    [Debug  ] <Database::Database(QObject*)> Database version is 1 
    [Warning] <static QMetaObject::Connection QObject::connectImpl(const QObject*, void**, const QObject*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, const int*, const QMetaObject*)> QObject::connect: signal not found in QTimer
    [Debug  ] <Mlt::Controller::Controller()> begin 
    [Debug  ] <Mlt::Controller::Controller()> end 
    [Debug  ] <void MainWindow::setupSettingsMenu()> begin 
    [Debug  ] <void MainWindow::setupSettingsMenu()> end 
    [Debug  ] <void MainWindow::readPlayerSettings()> begin 
    [Debug  ] <void MainWindow::readPlayerSettings()> end 
    [Debug  ] <void MainWindow::configureVideoWidget()> begin 
    [Debug  ] <void MainWindow::configureVideoWidget()> end 
    [Debug  ] <RecentDock::RecentDock(QWidget*)> begin 
    [Debug  ] <RecentDock::RecentDock(QWidget*)> end 
    [Debug  ] <PlaylistDock::PlaylistDock(QWidget*)> begin 
    [Debug  ] <PlaylistDock::PlaylistDock(QWidget*)> end 
    [Debug  ] <TimelineDock::TimelineDock(QWidget*)> begin 
    [Warning] <static bool QObject::disconnectImpl(const QObject*, void**, const QObject*, void**, const QMetaObject*)> QObject::disconnect: signal not found in QDockWidget
    [Debug  ] <TimelineDock::TimelineDock(QWidget*)> end 
    [Debug  ] <FiltersDock::FiltersDock(QWidget*)> begin 
    [Debug  ] <FiltersDock::FiltersDock(QWidget*)> end 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_balance" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_channelcopy" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_fadein" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_fadeout" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_gain" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_loudness" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_mono" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_pan" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "audio_swapchannels" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "blur" "meta_boxblur.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "blur" "meta_movit.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "color" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "color" "meta_frei0r_coloradj.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "color" "meta_movit.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "crop" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "crop" "meta_movit.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "fadein_brightness" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "fadein_movit" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "fadeout_brightness" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "fadeout_movit" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "glow" "meta_frei0r.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "glow" "meta_movit.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "invert" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "mirror" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "mirror" "meta_movit.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "movit_diffusion" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "rotate" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "saturation" "meta_frei0r.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "saturation" "meta_movit.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "sepia" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "sharpen" "meta_frei0r.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "sharpen" "meta_movit.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "stabilize" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "vignette" "meta_movit.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "vignette" "meta_oldfilm.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "wave" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "webvfx" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "webvfx_circular_frame" "meta.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "white" "meta_frei0r.qml" 
    [Debug  ] <QActionList getFilters(FiltersDock*, Ui::FiltersDock*)> reading filter metadata "white" "meta_movit.qml" 
    [Debug  ] <EncodeDock::EncodeDock(QWidget*)> begin 
    
  • Audio

    Audio "pop" right after transition

    A transition (cross-fade audio, cut video) that's been adjusted afterwards via dragging begin/end point in the timeline pretty much always ends up with a disturbing audio pop right after the transition. The only solution is to remove the transition and recreate it (readjusting it does not do the trick). Seems like the transition may become independent of the clip behind it, so that they don't connect seamlessly anymore.

    Windows 10 b10586; Shotcut 16.09.01

  • Black video sequences in export when using proxy

    Black video sequences in export when using proxy

    When inserting video files in the playlist, it randomly does not recognize the video index. The save file contains for these files <property name="video_index">-1</property> The proxy files were created correctly, so editing the videos was not a problem, but when exporting the video, the effected sequences were black (Audio was there). When I turn off proxy, the files are also blank in the preview and settings show Track: None. Videos in my case are 4K mp4 HEVC 30fps videos recorded with a Pixel 6 pro phone. When I deleted the project folder, created a new project and pulled in the files again, some other(!) files (but not all!) were effected, so it seems to be a random issue. Maybe it happens only when inserting many files at once? Replacing the video_index -1 with 2 in the save file solves the issue, but this workaround will probably not work for all kind of video files?

    Shotcut version 22.12.21, Windows store version, Windows 11, Ryzen 5950X, 64GB RAM, RTX 4090

  • Incorrect video clip framing for transitions and segmentation fault

    Incorrect video clip framing for transitions and segmentation fault

    I'm running Shotcut 22.12.1 on macOS Mojave 10.14 (Intel).

    My project was previously working fine and I somehow triggered an error with transitions that I am having a hard time fixing. I think it might have happened after I tried to apply a filter to the whole output or track, and then removed it.

    What's now happening is that when I transition between two clips with the Size, Position and Rotate filter active, the Size, Position and Rotate filter appears not to be applied correctly during the transition between the clips - the frame around the clip is reduced although the content is still zoomed in.

    I've confirmed that this will also happen for new transitions I create between newly added clips - not just for the transitions I'd already saved in my project.

    Here is a screenshot. Note that the rectangular overlay in the middle of the screen is supposed to take up the full area of the white frame, as it does before and after transition. Until my mystery action which broke everything a few minutes ago, this was working fine. Now it's adjusting during the transition to fit in the viewport according to its original aspect ratio.

    Screen Shot 2023-01-01 at 8 50 28 PM

    I figured I could try to fix this by deleting the transition and recreating it. However dragging the edge of the second clip produced a segmentation fault:

    [h264 @ 0x7fec9fcab740] mmco: unref short failure
    Segmentation fault: 11
    

    I've tried restarting my computer but the issue persists.

    This is pretty bad for me because I basically can't edit this project anymore without it crashing. I'd appreciate any workaround available.

  • Upgrade to latest ShotCut Kills Memory

    Upgrade to latest ShotCut Kills Memory

    In RE to 22.12.21:

    Hello. Love the App!!! Having a general app issue with the latest version where once I open a project the memory utilization begins to climb to a point where the app is soon unusable and unstable. It doesn't crash, but just clicking on something takes minutes.

    Rolled back to the previous version and not having the issue.

    Windows 11 OS: Version 10.0.22623 Build 22623 SurfaceBook Pro 2 16gb RAM

  • Image is exported as white block, randomly.

    Image is exported as white block, randomly.

    This keeps happening randomly and I have no idea what causes this.

    Some images are good, somes not. Sometimes png, somethimes jpg. Sometimes this image, sometimes that image.(no mlt file editing, just export) Very Random.

    Changing image's filename/filepath may work, or make it worse.

    Only after exported, it can be check whether it's good or not. While during shotcut editing, the images are always showed correctly

    screenshot_on_b85m_by_flameshot_at_2022-12-10_22-17-48

    screenshot_on_b85m_by_flameshot_at_2022-12-10_22-18-08

    ffmpeg version:4.2.7-0ubuntu0.1 shotcut version: shotcut-linux-x86_64-221125.AppImage, and shotcut-linux-x86_64-221025.AppImage OS: Linux Mint 20.3 (based on Ubuntu 20.04)

    Also I think this issue is relate to: #1213 #1206

    Is there any debug infomation I can get when exporting, in AppImage version? Or maybe I need to use the Linux portable tar?

  • Drag of clip on timeline with bad position

    Drag of clip on timeline with bad position

    When dragging clip on time line, the current behavior is this:

    1. press left mouse button on the clip
    2. move mouse to the left/right to move the position, nothing happens until you move the mouse by some amount (about 20 pixels?)
    3. clip starts moving not from the position where button pressed, but on the position of current mouse position when dragging starts, if you move mouse fast, you drag clip outside of the clip, so clip is not on the position of mouse, but somewhere far away from cursor

    Correct behavior: Clip holds on mouse position when first clicked

    Hint: It seems when the dragging starts, the mouse position is saved and from that position is counted the moved position of the clip. However correct function should be to save the start mouse position in onmousedown event and from that position count the new position of clip.

    Tested version: 22.11.25

  • crash when closing a project and audio channels = 6

    crash when closing a project and audio channels = 6

    Shotcut version 22.10.25 Windows 11 Settings > Audio Channels = 6

    Open a project and choose File > Close. Sometimes (depends on the project test %sign.mlt reproducible for me) crashes.

Olive is a free non-linear video editor for Windows, macOS, and Linux.
Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive is a free non-linear video editor for Windows, macOS, and Linux.

Dec 31, 2022
Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content.
Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content.

This project is a Vulkan Video Sample Application demonstrating an end-to-end, all-Vulkan, processing of h.264/5 compressed video content. The application decodes the h.264/5 compressed content using an HW accelerated decoder, the decoded YCbCr frames are processed with Vulkan Graphics and then presented via the Vulkan WSI.

Dec 15, 2022
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.

Video Stabilization Contents General Info Installation To Do General Info Video stabilization is a software-based approach in real-time to eliminating

Nov 23, 2022
Minimalist video maker -- simplify your music score video making process!

VisualScores 极简视频制作程序,简化你的乐谱视频制作! 如果需要编译,请解压 lib 文件夹中压缩包。 使用前请参考 manual 文件夹中的用户手册。 请勿修改、移动或删除 resource 文件夹中的任何文件。 VisualScores Minimalist video maker

Sep 7, 2022
A free, fast, cross-platform volumetric codec for everyone.

The open source Universal Volumetric (".uvol") compressed interchange format for streaming mesh sequences. This project also includes a cross-platform player implementation using h.264 video for texture.

Dec 28, 2022
Free plugin-based video converter
Free plugin-based video converter

SEZE II Смотреть на русском SEZE is a plugin-based video converter for Windows/Linux. You can write your video filter in C++ (see section "How to make

Jan 3, 2023
Kodi is an award-winning free and open source software media player and entertainment hub for digital media
Kodi is an award-winning free and open source software media player and entertainment hub for digital media

website • docs • community • add-ons Welcome to Kodi Home Theater Software! Kodi is an award-winning free and open source software media player and en

Jan 2, 2023
Free and open-source media player written in C++

Liquid Media Player Free and open-source media player written in C++. Currently in development. Build Guide Windows Install the MSYS2 Building Platfor

Sep 20, 2022
Open h.265 video codec implementation.
Open h.265 video codec implementation.

libde265 - open h.265 codec implementation libde265 is an open source implementation of the h.265 video codec. It is written from scratch and has a pl

Dec 30, 2022
Vireo is a lightweight and versatile video processing library written in C++11

Overview Vireo is a lightweight and versatile video processing library that powers our video transcoding service, deep learning recognition systems an

Jan 2, 2023
Video player for 3ds
Video player for 3ds

Video player for 3DS Patch note v1.0.1 Added allow skip frames option v1.0.0 Initial release Summary Video player for 3DS Performance 256x144(144p)@30

Jan 6, 2023
Plugin for VLC that pauses/plays video on mouse click

Pause Click plugin for VLC VLC plugin that allows you to pause/play a video by clicking on the video image. Can be configured to work nicely with doub

Dec 25, 2022
A WFH utility to visually indicate user engagement of audio and video
A WFH utility to visually indicate user engagement of audio and video

DIY: In meeting indicator - WFH Utility The need for in meeting indicator at home So many of you have gotten accustomed to work from home by now. This

Jun 28, 2021
Real-Time Intermediate Flow Estimation for Video Frame Interpolation filter for VapourSynth

Description RIFE filter for VapourSynth, based on rife-ncnn-vulkan. Usage rife.RIFE(clip clip[, int model=0, int gpu_id=auto, int gpu_thread=2, bint t

Dec 24, 2022
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

Jan 5, 2023
Anki-like app for spaced repetition of video clips
Anki-like app for spaced repetition of video clips

ReeePlayer The ReeePlayer application is designed for spaced repetition of fragments (clips) of video and audio files with similar principle as in Ank

Jan 3, 2023
NymphCast is a audio and video casting system with support for custom applications.
NymphCast is a audio and video casting system with support for custom applications.

NymphCast is a software solution which turns your choice of Linux-capable hardware into an audio and video source for a television or powered speakers. It enables the streaming of audio and video over the network from a wide range of client devices, as well as the streaming of internet media to a NymphCast server, controlled by a client device.

Jan 4, 2023
SortNode is a JS binding for SORT: Simple, online, and real-time tracking of multiple objects in a video sequence.

SortNode is a JS binding for SORT: Simple, online, and real-time tracking of multiple objects in a video sequence.

Aug 2, 2022
Vita Recorder is a plugin that allows to record video clips during your play sessions.

Vita Recorder Vita Recorder is a plugin that allows to record video clips during your play sessions. The code is based off VITA2PC at which has been a

Nov 8, 2022