Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
software:video [2012/06/08 23:46] cyril [Video] |
software:video [2024/05/12 22:48] (current) cyril [ffmpeg] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Multimedia encoding ====== | ====== Multimedia encoding ====== | ||
- | ===== Windows ===== | ||
- | VirtualDub | + | ===== Images ===== |
- | ===== Linux ===== | + | ==== convert |
- | + | === size operations | |
- | ==== Images ==== | + | |
- | + | ||
- | === convert === | + | |
- | == size operations == | + | |
* resize: scale image< | * resize: scale image< | ||
Line 22: | Line 17: | ||
</ | </ | ||
- | == Annotate an image with text== | + | === Annotate an image with text === |
Simple text: | Simple text: | ||
< | < | ||
Line 39: | Line 34: | ||
</ | </ | ||
- | == Append images == | + | === Append images |
< | < | ||
Line 53: | Line 48: | ||
</ | </ | ||
- | == Formats == | + | === Create animated GIF === |
+ | |||
+ | < | ||
+ | |||
+ | === Formats | ||
* EPS to RGB:< | * EPS to RGB:< | ||
convert -density 600x600 -flatten -depth 8 -colorspace RGB file.eps ppm:- | convert - file.png | convert -density 600x600 -flatten -depth 8 -colorspace RGB file.eps ppm:- | convert - file.png | ||
</ | </ | ||
- | === Exif === | + | ==== Exif ==== |
- | == exiftool == | + | === exiftool |
* restore exif Orientation tag: if you have photos captured with a device that sets the orientation tag, but you used a viewer that doesn' | * restore exif Orientation tag: if you have photos captured with a device that sets the orientation tag, but you used a viewer that doesn' | ||
exiftool -overwrite_original -Orientation=" | exiftool -overwrite_original -Orientation=" | ||
Line 65: | Line 64: | ||
- | ==== Video ==== | + | ===== Video ===== |
- | === mencoder === | + | ==== mencoder |
(comes with mplayer). | (comes with mplayer). | ||
Line 80: | Line 79: | ||
</ | </ | ||
- | == Input data and options == | + | === Input data and options |
* Video files< | * Video files< | ||
mencoder \ | mencoder \ | ||
Line 108: | Line 107: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
+ | * '' | ||
* '' | * '' | ||
- | == Output data and options == | + | === Output data and options |
Specify the video codec with '' | Specify the video codec with '' | ||
Line 153: | Line 154: | ||
</ | </ | ||
- | == Other operations == | + | === Other operations |
* cut the file (here from 10' | * cut the file (here from 10' | ||
Line 159: | Line 160: | ||
</ | </ | ||
- | === AviDemux | + | ==== ffmpeg ==== |
- | A GUI easier to use, like VirtualDub | + | * video codec: '' |
+ | * audio codec: '' | ||
+ | * codec bitrate: video '' | ||
+ | * codec quality: video '' | ||
- | === ffmpeg === | + | * crop: '' |
+ | * resize: '' | ||
+ | * pad: '' | ||
+ | * rotate: '' | ||
+ | |||
+ | * blur: '' | ||
+ | * overlay two videos:< | ||
+ | ffmpeg | ||
+ | </ | ||
+ | ffmpeg -i in1.avi -i in2.avi -filter_complex " | ||
+ | </ | ||
* append side by side two videos:< | * append side by side two videos:< | ||
ffmpeg -i in_left.avi -vf " | ffmpeg -i in_left.avi -vf " | ||
</ | </ | ||
- | ==== Audio ==== | ||
- | === mp3 === | + | * encode video from images sequence (eg for timelapse):< |
+ | ffmpeg -r 50 -i 01/ | ||
+ | ffmpeg -r 10 -pattern_type glob -i " | ||
+ | </ | ||
+ | |||
+ | * cut clip (ss is start time, t is duration):< | ||
+ | ffmpeg -i in.avi -ss 00:00:23 -t 00:00:19 -vcodec copy -acodec copy out.avi | ||
+ | </ | ||
+ | |||
+ | * render subtitles (requires to be compiled with libass): '' | ||
+ | |||
+ | * transform portrait video 640x480 to landscape 1280x720 with blurry repeated sides:< | ||
+ | ffmpeg -i in.avi -filter_complex "[0:v] transpose=2, | ||
+ | ' | ||
+ | </ | ||
+ | ==== AviDemux ==== | ||
+ | |||
+ | A GUI easier to use, like VirtualDub for Windows. | ||
+ | |||
+ | |||
+ | ==== PhotoFilmStrip ==== | ||
+ | |||
+ | |||
+ | |||
+ | ==== Kdenlive ==== | ||
+ | |||
+ | Tried Openshot and Cinelerra but seem crappy, Kdenlive seems to have better design. | ||
+ | |||
+ | * Transitions : works between two video tracks that overlap (eg dissolve). | ||
+ | * Audio track volume : add effect "Audio Correction / Volume (keyframable)", | ||
+ | ===== Audio ===== | ||
+ | |||
+ | ==== mp3 ==== | ||
=> '' | => '' | ||
Line 179: | Line 224: | ||
</ | </ | ||
- | === ogg === | + | => '' |
+ | |||
+ | To cut an mp3 file (warning: ID3 tags are not copied): | ||
+ | <code bash> | ||
+ | mp3cut -o output.mp3 -t 00: | ||
+ | </ | ||
+ | |||
+ | To concatenate mp3 files: | ||
+ | <code bash> | ||
+ | mp3cut -o output.mp3 input1.mp3 input2.mp3 input3.mp3 | ||
+ | </ | ||
+ | |||
+ | => '' | ||
+ | |||
+ | To copy ID3 tags from a file to another one. | ||
+ | |||
+ | => '' | ||
+ | |||
+ | To view and edit ID3 tags in command line. | ||
+ | |||
+ | => '' | ||
+ | |||
+ | To view and edit ID3 tags in GUI. | ||
+ | |||
+ | |||
+ | ==== ogg ==== | ||
(using vorbis-tools package) | (using vorbis-tools package) | ||
Line 194: | Line 264: | ||
</ | </ | ||
- | === sox === | + | ==== sox ==== |
play, record, process | play, record, process | ||
- | * Cut:< | + | * Cut: (start position / length)< |
sox in_file.wav out_file.wav trim 2:37:32 4:00 | sox in_file.wav out_file.wav trim 2:37:32 4:00 | ||
+ | </ | ||
+ | * Reencode:< | ||
+ | sox in_file.type1 out_file.type2 | ||
+ | sox in_file.type1 -t type2 - | oggenc ... | ||
</ | </ | ||
- | === ffmpeg === | + | ==== ffmpeg |
* extract sound track from video: < | * extract sound track from video: < | ||
ffmpeg -i video.avi sound.mp3 | ffmpeg -i video.avi sound.mp3 | ||
</ | </ |