Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
software:video [2011/05/05 06:50]
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<code>   * resize: scale image<code>
Line 22: Line 17:
 </code> </code>
  
-== Annotate an image with text==+=== Annotate an image with text ===
 Simple text: Simple text:
 <code> <code>
Line 39: Line 34:
 </code> </code>
  
-== Append images ==+=== Append images ===
  
 <code> <code>
Line 46: Line 41:
 </code> </code>
  
-=== Exif === +More complex: 
-== exiftool ==+<code> 
 +convert im1.png -resize 640x480 ppm:- \ 
 + | convert im2.png - +append ppm:- \ 
 + | convert im3.png - -append final.png 
 +</code> 
 + 
 +=== Create animated GIF === 
 + 
 +<code>convert -delay 50 -loop 0 *.jpg out.gif</code> 
 + 
 +=== Formats === 
 +  * EPS to RGB:<code> 
 +convert -density 600x600 -flatten -depth 8 -colorspace RGB file.eps ppm:- | convert - file.png 
 +</code> 
 + 
 +==== Exif ==== 
 +=== 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't use this tag, and rotated the image with a software that doesn't update this tag, then the image is inconsistent and is not well displayed in exif-aware viewers. To reset the orientation tag, you can use the following command:<code>   * restore exif Orientation tag: if you have photos captured with a device that sets the orientation tag, but you used a viewer that doesn't use this tag, and rotated the image with a software that doesn't update this tag, then the image is inconsistent and is not well displayed in exif-aware viewers. To reset the orientation tag, you can use the following command:<code>
 exiftool -overwrite_original -Orientation="Horizontal (normal)" <file> exiftool -overwrite_original -Orientation="Horizontal (normal)" <file>
Line 53: Line 64:
  
  
-==== Video ==== +===== Video ===== 
-=== mencoder ===+==== mencoder ====
 (comes with mplayer). (comes with mplayer).
  
Line 68: Line 79:
 </code> </code>
  
-== Input data and options ==+=== Input data and options ===
   * Video files<code>   * Video files<code>
 mencoder \ mencoder \
Line 96: Line 107:
     * ''-vf yadif=0'' : deinterlace     * ''-vf yadif=0'' : deinterlace
     * ''-vf scale=640:480'' : scale video     * ''-vf scale=640:480'' : scale video
 +    * ''-vf crop=w:h:x:y'' : crop video
 +    * ''-vf "crop=640:360:0:60,scale=1280:720"'' : multiple video filters
     * ''-vf pp=?'' : post processing subfilters     * ''-vf pp=?'' : post processing subfilters
  
-== Output data and options ==+=== Output data and options ===
  
 Specify the video codec with ''-ovc'' option, and audio codec with ''-oac'' option. ''copy'' is possible with both. Specify the video codec with ''-ovc'' option, and audio codec with ''-oac'' option. ''copy'' is possible with both.
Line 141: Line 154:
 </code> </code>
  
-=== AviDemux ===+=== Other operations === 
 + 
 +  * cut the file (here from 10'00" to 10'30"):<code> 
 +mencoder -ss 10:00 -endpos 30 -ovc copy -oac copy movie.avi -o submovie.avi 
 +</code> 
 + 
 +==== ffmpeg ==== 
 + 
 +  * video codec: ''-c:v libx264'' or ''-c:v libxvid'' 
 +  * audio codec: ''-c:a pcm_s16le'' or ''libmp3lame'' for video codec 
 +  * codec bitrate: video ''-b:v 800k'', audio ''-b:a 128k'' 
 +  * codec quality: video ''-q:v 20'', audio ''-q:a 90'', x264 ''-crf 20'' 
 + 
 +  * crop: ''-vf "crop=640:360:0:60"'' 
 +  * resize: ''-vf "scale=1280:720"'' 
 +  * pad: ''-vf "pad=1280:720:370:0"'' 
 +  * rotate: ''-vf "transpose=2"'' (0=CCW+VF, 1=CW, 2=CCW, 3=CW+VF) 
 + 
 +  * blur: ''-vf boxblur=10:1'' 
 +  * overlay two videos:<code> 
 +ffmpeg -i in1.avi -vf "movie=in2.avi [b]; [in][b] overlay=320:0" 
 +</code><code> 
 +ffmpeg -i in1.avi -i in2.avi -filter_complex "[0:v][1:v] overlay=320:0" 
 +</code> 
 + 
 +  * append side by side two videos:<code> 
 +ffmpeg -i in_left.avi -vf "pad=1280:480 [left]; movie=in_right.avi [right]; [left][right] overlay=640:0" -c:v libx264 -b:v 800k out.avi 
 +</code> 
 + 
 +  * encode video from images sequence (eg for timelapse):<code> 
 +ffmpeg -r 50 -i 01/all/image_1_%07d.pgm -c:v libx264 -b:v 800k video_01.avi 
 +ffmpeg -r 10 -pattern_type glob -i "*.JPG" -c:v libsvtav1 -qp 20 video.mp4 
 +</code> 
 + 
 +  * cut clip (ss is start time, t is duration):<code> 
 +ffmpeg -i in.avi -ss 00:00:23 -t 00:00:19 -vcodec copy -acodec copy out.avi 
 +</code> 
 + 
 +  * render subtitles (requires to be compiled with libass): ''-vf "subtitles=in.srt"'' 
 + 
 +  * transform portrait video 640x480 to landscape 1280x720 with blurry repeated sides:<code> 
 +ffmpeg -i in.avi -filter_complex "[0:v] transpose=2,scale=1280:720,boxblur=10:1 [bg]; [0:v] transpose=2,scale=540:720 [fg]; [bg][fg] overlay=370:0 [out]" -map  
 +'[out]' -map 0:a -c:v libx264 -b:v 2000k -c:a copy out.avi 
 +</code> 
 +==== AviDemux ====
  
 A GUI easier to use, like VirtualDub for Windows. A GUI easier to use, like VirtualDub for Windows.
  
-==== Audio ==== 
  
-=== mp3 ===+==== 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)", then double click to add modification points. 
 +===== Audio ===== 
 + 
 +==== mp3 ====
  
 => ''lame'' => ''lame''
Line 156: Line 224:
 </code> </code>
  
-=== ogg ===+=> ''mp3cut'' 
 + 
 +To cut an mp3 file (warning: ID3 tags are not copied): 
 +<code bash> 
 +mp3cut -o output.mp3 -t 00:00:05+700-00:00:07+800 input.mp3 
 +</code> 
 + 
 +To concatenate mp3 files: 
 +<code bash> 
 +mp3cut -o output.mp3 input1.mp3 input2.mp3 input3.mp3 
 +</code> 
 + 
 +=> ''id3cp'' 
 + 
 +To copy ID3 tags from a file to another one. 
 + 
 +=> ''id3v2'' 
 + 
 +To view and edit ID3 tags in command line. 
 + 
 +=> ''kid3'' 
 + 
 +To view and edit ID3 tags in GUI. 
 + 
 + 
 +==== ogg ====
 (using vorbis-tools package) (using vorbis-tools package)
  
Line 171: Line 264:
 </code> </code>
  
-=== sox === +==== sox ==== 
-play,record,process+play, record, process 
 + 
 +  * Cut: (start position / length)<code> 
 +sox in_file.wav out_file.wav trim 2:37:32 4:00 
 +</code> 
 +  * Reencode:<code> 
 +sox in_file.type1 out_file.type2 
 +sox in_file.type1 -t type2 - | oggenc ... 
 +</code> 
 + 
 +==== ffmpeg ==== 
 + 
 +  * extract sound track from video: <code> 
 +ffmpeg -i video.avi sound.mp3 
 +</code>
software/video.1304578222.txt.gz · Last modified: 2013/09/19 16:43 (external edit)
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0