Video Editing: Difference between revisions

No edit summary
m Text replacement - "<(\/?)source" to "<$1syntaxhighlight"
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
== Applications ==
== Applications ==
There are several fully professional "Non-Linear Video Editing" applications in the free software realm.  I've only briefly toyed with them so I can't tell you from personal experience how easy it might be to do a quick project.  But Blender, OpenShot and KDENLiVE are amazing free software applications.
=== Editing ===
=== Editing ===
Get familiar with these editing tools
These are some of the free editing tools.  More can be found at https://directory.fsf.org/wiki/Category/Video
; [http://ffmpeg.org/ FFmpeg] [[wp:FFmpeg]] : One of, if not ''the'' most useful tool in the land of multimedia is FFMPEG.
; [https://www.blender.org/ Blender]
; [http://www.transcoding.org/cgi-bin/transcode Transcode] [[wp:Transcode_(software)]] : tool is built using the libavcodec library of FFmpeg.
: {{#ev:youtube|https://www.youtube.com/watch?v=pznQweUD9x0|300|right|Basic Video Editing in Blender|frame}}
; [http://www.avidemux.org/ Avidemux] [[wp:Avidemux]] ([http://www.avidemux.org/admWiki/index.php?title=Main_Page wiki]) : Available in three user interfaces (GTK+, QT4 and cli) for all major operating systems.  Avidemux is a free video editor designed for simple cutting, filtering and encoding tasks. It's graphical user interface looks pretty similar to VirtualDub and most features known from VirtualDub are available too. Avidemux natively supports a great number of file types, such as AVI, MPEG, VOB, TS, MP4, ASF, OGM, MKV and FLV. At the same time Avidemux natively supports a wide range of Video/Audio formats, including MPEG-1, MPEG-2, MPEG-4 ASP, H.264/AVC, DV, HuffYUV, MP3, AAC, AC-3 and Vorbis. Tasks can be automated using projects, job queue and powerful scripting capabilities. Video-DVD or (S)VCD compliant streams can be created with easy-to-use "Auto" wizards. Multi-threading is supported! See also: [http://forum.doom9.org/showthread.php?t=126164 FAQ] at doom9
: is simply an awesome program. 
; [http://www.gopchop.org GOPchop] : is a "Graphical MPEG Clipper" - a Linux-based GUI program     for removing sections from a video file with the minimum amount of     disturbance to the stream.  It does this by writing specific "Group     of Pictures" (GOP) sections to a new video file.  The GOPs will     decode correctly and the gaps won't be noticed.
: It is used mostly for 3-d design and modelling, but it also is quite capable at video editing.
; [http://handbrake.fr/ HandBrake] [[mw:HandBrake]] : is a software application that can convert MPEG video (including DVD-Video) into a MPEG-4 video file in .mp4, .avi, .ogm, or .mkv containers.
: Blender works on both Windows and Linux. Lots of tutorials on YouTube (see right for example) 
; [http://kinodv.org/ kino] [[wp:Kino_(software)]] : Kino is great for working with the DV format and IEEE 1394 (firewire) interfaces
; [http://www.openshot.org/features/ OpenShot]
; [http://kdenlive.org/ kdenlive]  [[wp:Kdenlive]] : A nice "pro-sumer" (hobbyist, close to professional needs)  tool.  Kdenlive has instructions on how to make and add a tutorial to their site, including how to create and upload desktop recordings onto vimeo.com  http://kdenlive.org/contribution-manual/how-make-video-tutorial
: {{#ev:youtube|https://www.youtube.com/watch?v=_0nEHxtTjk4|300|right|OpenShot 2.0 reaches beta|frame}}
; [http://www.heroinewarrior.com/cinelerra.php cinelerra] [[wp:Cinelerra]] : is a significant project, aimed at the professional user.
: is another Linux only NLVE, and might be more 'beginner friendly' 
; [http://ffmpeg.org/ FFmpeg] [[wp:FFmpeg]]  
: One of, if not ''the'' most useful tool in the land of multimedia is FFMPEG.
; [http://www.transcoding.org/cgi-bin/transcode Transcode] [[wp:Transcode_(software)]]  
: tool is built using the libavcodec library of FFmpeg.
; [http://www.avidemux.org/ Avidemux] [[wp:Avidemux]] ([http://www.avidemux.org/admWiki/index.php?title=Main_Page wiki])  
: Available in three user interfaces (GTK+, QT4 and cli) for all major operating systems.   
: Avidemux is a free video editor designed for simple cutting, filtering and encoding tasks. It's graphical user interface looks pretty similar to VirtualDub and most features known from VirtualDub are available too.  
: Avidemux natively supports a great number of file types, such as AVI, MPEG, VOB, TS, MP4, ASF, OGM, MKV and FLV. At the same time Avidemux natively supports a wide range of Video/Audio formats, including MPEG-1, MPEG-2, MPEG-4 ASP, H.264/AVC, DV, HuffYUV, MP3, AAC, AC-3 and Vorbis. Tasks can be automated using projects, job queue and powerful scripting capabilities. Video-DVD or (S)VCD compliant streams can be created with easy-to-use "Auto" wizards. Multi-threading is supported! See also: [http://forum.doom9.org/showthread.php?t=126164 FAQ] at doom9
; [http://www.pitivi.org/ PiTiVi]
: is a video editor designed to be user-friendly and powerful
; [http://www.gopchop.org GOPchop]  
: is a "Graphical MPEG Clipper" - a Linux-based GUI program for removing sections from a video file with the minimum amount of disturbance to the stream.  It does this by writing specific "Group of Pictures" (GOP) sections to a new video file.  The GOPs will decode correctly and the gaps won't be noticed.
; [http://handbrake.fr/ HandBrake] [[mw:HandBrake]]  
: is a software application that can convert MPEG video (including DVD-Video) into a MPEG-4 video file in .mp4, .avi, .ogm, or .mkv containers.
; [http://kinodv.org/ kino] [[wp:Kino_(software)]]  
: Kino is great for working with the DV format and IEEE 1394 (firewire) interfaces
; [http://kdenlive.org/ kdenlive]  [[wp:Kdenlive]]  
: A nice "pro-sumer" (hobbyist, close to professional needs)  tool.  Kdenlive has instructions on how to make and add a tutorial to their site, including how to create and upload desktop recordings onto vimeo.com  http://kdenlive.org/contribution-manual/how-make-video-tutorial {{#ev:youtube|https://www.youtube.com/watch?v=9kkaUd7nBKo|300|right|KDENLiVE|frame}} Currently only runs on Linux (but there are efforts to port it to Mac and Windows).
; [http://www.heroinewarrior.com/cinelerra.php cinelerra] [[wp:Cinelerra]] https://cinelerra-cv.org/
: is a significant project, aimed at the professional user.  It's both a NLVE and a compositing application.  There is a friendly fork called the Community Version (CV) as compared to the original Heroine Warrior (HW) version.
 
=== Video Slideshows ===
; [http://ffdiaporama.tuxfamily.org/ ffDiaporama] : for making a slideshow video, and it's not bad. However, it simply refused to render my project with a 'encode error'. It is also outdated (last release in 2014) and doesn't install properly on newer Ubuntu.  The project itself is a fork of the even less maintained Diaporama
; [http://imagination.sourceforge.net/ Imagination] : is a simple tool.  Last released in 2011, there is at least a note in 2017 that contributions are welcome.  The results weren't bad either.  But, I still like the power of OpenShot.


=== Players ===
=== Players ===
; [http://www.mplayerhq.hu/design7/info.html MPlayer] [[wp:MPlayer]] : is one of the most essential players in the Free Software world.  The project works in tandem with FFmpeg.  MPlayer software includes the '''Mencoder''' commandline tool
; [http://www.mplayerhq.hu/design7/info.html MPlayer] [[wp:MPlayer]]  
; VLC : vlc is cross-platform and wonderful
: is one of the most essential players in the Free Software world.  The project works in tandem with FFmpeg.  MPlayer software includes the '''Mencoder''' commandline tool
; VLC  
: vlc is cross-platform and wonderful.  It even works on your phone.
 


=== Transcoding ===
http://programmer-art.org/projects/arista-transcoder


== Mencoder and ffmpeg examples ==
== Mencoder and ffmpeg examples ==
Line 23: Line 59:


You can extract the part you want with mplayer like this:
You can extract the part you want with mplayer like this:
<source lang="bash">
<syntaxhighlight lang="bash">
$ mencoder -ovc copy -oac copy infile -ss 00:10:09.5 -endpos 00:05:00 -o outfile
$ mencoder -ovc copy -oac copy infile -ss 00:10:09.5 -endpos 00:05:00 -o outfile
</source>
</syntaxhighlight>
"-ovc" means "output video codec", "-oac" means "output audio codec",
"-ovc" means "output video codec", "-oac" means "output audio codec",
the "-ss" argument skips ahead to 10 minutes 9.5 seconds into the
the "-ss" argument skips ahead to 10 minutes 9.5 seconds into the
Line 34: Line 70:


This can also be done with ffmpeg:
This can also be done with ffmpeg:
<source lang="bash">
<syntaxhighlight lang="bash">
$ ffmpeg -acodec copy -vcodec copy -itsoffset -00:10:09.5 -i infile -ss 00:10:09.5 -t 00:05:00 outfile
$ ffmpeg -acodec copy -vcodec copy -itsoffset -00:10:09.5 -i infile -ss 00:10:09.5 -t 00:05:00 outfile
</source>
</syntaxhighlight>
Note that the "-itsoffset" option must be specified to make sure that
Note that the "-itsoffset" option must be specified to make sure that
A/V timestamps synchronize, and that its value must be the negative of
A/V timestamps synchronize, and that its value must be the negative of
Line 46: Line 82:
To transcode the video, specify the output codecs as the "vcodec" and
To transcode the video, specify the output codecs as the "vcodec" and
"acodec" sub-options to the libavcodec option (-lavcopts):
"acodec" sub-options to the libavcodec option (-lavcopts):
<source lang="bash">
<syntaxhighlight lang="bash">
$ mencoder -ovc lavc -oac lavc -lavcopts vcodec=mpeg4:acodec=ac3 infile -o outfile
$ mencoder -ovc lavc -oac lavc -lavcopts vcodec=mpeg4:acodec=ac3 infile -o outfile
</source>
</syntaxhighlight>
Here, "lavc" means to use one of the libavcodec codecs, specified by
Here, "lavc" means to use one of the libavcodec codecs, specified by
the "vcodec" and "acodec" suboptions to the "-lavcopts" option (which
the "vcodec" and "acodec" suboptions to the "-lavcopts" option (which
Line 58: Line 94:
If you want to change the framerate of the video, you can use
If you want to change the framerate of the video, you can use
something like this:
something like this:
<source lang="bash">
<syntaxhighlight lang="bash">
$ mencoder -ofps 25 -oac copy -ovc copy -o outfile infile
$ mencoder -ofps 25 -oac copy -ovc copy -o outfile infile
</source>
</syntaxhighlight>
Note that, whenever you use "copy" as the codec, mplayer will copy the
Note that, whenever you use "copy" as the codec, mplayer will copy the
corresponding stream to the output unmodified.  That means it will ignore
corresponding stream to the output unmodified.  That means it will ignore
Line 66: Line 102:


For example:
For example:
<source lang="bash">
<syntaxhighlight lang="bash">
$ mencoder -oac copy -ovc copy -af volume=10 -o outfile infile
$ mencoder -oac copy -ovc copy -af volume=10 -o outfile infile
</source>
</syntaxhighlight>
WILL NOT DO what you probably want, because with "-oac copy" the
WILL NOT DO what you probably want, because with "-oac copy" the
"volume" audio filters (specified with "-af") will be ignored, and the
"volume" audio filters (specified with "-af") will be ignored, and the