fix ffmpeg
This commit is contained in:
parent
320da6b5a0
commit
fa829cb6d4
139
sound/ffmpeg.md
139
sound/ffmpeg.md
@ -1,139 +0,0 @@
|
|||||||
---
|
|
||||||
title: "ffmpeg"
|
|
||||||
tags: [ "Documentation", "Sound" ]
|
|
||||||
---
|
|
||||||
# Basics
|
|
||||||
|
|
||||||
ffmpeg -i [input file] output_file.mkv
|
|
||||||
|
|
||||||
The input file might be a device, such as a camera.
|
|
||||||
|
|
||||||
Play video:
|
|
||||||
|
|
||||||
> ffplay file.mp4
|
|
||||||
|
|
||||||
#Record screen
|
|
||||||
Take the format as 'grab the x11 screen'.
|
|
||||||
|
|
||||||
> ffmpeg -f x11grab -s [screensize] -i :0.0 out.mkv
|
|
||||||
|
|
||||||
Get screensize with
|
|
||||||
|
|
||||||
> xrandr -q
|
|
||||||
|
|
||||||
or maybe just...
|
|
||||||
|
|
||||||
> ffmpeg -f x11grab -s "$(xdpyinfo | grep dimensions | awk '{print $2}')" -i :1.0 out.mkv
|
|
||||||
|
|
||||||
#Add default pulse audio
|
|
||||||
> ffmpeg -f x11grab -s [screensize] -i :0.0 -f alsa -i default out.mkv
|
|
||||||
|
|
||||||
For problems, see pavucontrol.
|
|
||||||
|
|
||||||
# Random online suggestion
|
|
||||||
ffmpeg -video_size "$(xdpyinfo | grep dimensions | awk '{print $2}')" -f x11grab -i :0.0 -f pulse -ac 2 -i default ~/out.mkv
|
|
||||||
|
|
||||||
# Rotate
|
|
||||||
|
|
||||||
> ffmpeg -i in.mov -vf "transpose=1" out.mov
|
|
||||||
|
|
||||||
0 = 90 Counterclockwise and verfical flip (default)
|
|
||||||
1 = 90 Clockwise
|
|
||||||
2 = 90 CounterClockwise
|
|
||||||
3 = 90Clockwise and vertical flip
|
|
||||||
|
|
||||||
# Lower Video Quality
|
|
||||||
A crf quality of 18 is high, while 24 is low quality.
|
|
||||||
|
|
||||||
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4
|
|
||||||
|
|
||||||
# convert
|
|
||||||
|
|
||||||
Check for supported formats:
|
|
||||||
|
|
||||||
> ffmpeg -formats
|
|
||||||
|
|
||||||
To convert from mkv to mp4 we can use a codec rather than proper conversion. Both are wrappers around other formats, so this conversion loses less quality than other conversion types.
|
|
||||||
|
|
||||||
> ffmpeg -i LostInTranslation.mkv -codec copy LostInTranslation.mp4
|
|
||||||
|
|
||||||
Opus to mp3
|
|
||||||
|
|
||||||
> ffmpeg -i song.opus song.mp3
|
|
||||||
|
|
||||||
> ffmpeg -i video.flv video.mpeg
|
|
||||||
|
|
||||||
> ffmpeg -i input.webm -qscale 0 output.mp4
|
|
||||||
|
|
||||||
# Video to Audio
|
|
||||||
|
|
||||||
> ffmpeg -i input.mp4 -vn output.mp3
|
|
||||||
|
|
||||||
|
|
||||||
# Convert all mkv files to mp4
|
|
||||||
|
|
||||||
> for i in *.mkv; do
|
|
||||||
|
|
||||||
> ffmpeg -i "$i" -codec copy "${i%.*}.mp4"
|
|
||||||
|
|
||||||
> done
|
|
||||||
|
|
||||||
|
|
||||||
# Change resolution
|
|
||||||
|
|
||||||
> ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
|
|
||||||
|
|
||||||
Or just crop:
|
|
||||||
|
|
||||||
> ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
|
|
||||||
|
|
||||||
Or aspect ratio:
|
|
||||||
|
|
||||||
> ffmpeg -i input.mp4 -aspect 16:9 output.mp4
|
|
||||||
|
|
||||||
Or trim to start and stop times:
|
|
||||||
|
|
||||||
> ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4
|
|
||||||
|
|
||||||
Indicate start times with -ss and time with -t in seconds.
|
|
||||||
|
|
||||||
Or split a video into parts:
|
|
||||||
|
|
||||||
> ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
|
|
||||||
|
|
||||||
|
|
||||||
# Compress Video
|
|
||||||
|
|
||||||
> ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
|
|
||||||
|
|
||||||
# Extract Images from Video
|
|
||||||
|
|
||||||
-r sets the frame rate, and -f selects the format.
|
|
||||||
|
|
||||||
> ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png
|
|
||||||
|
|
||||||
# Add Images to Audio
|
|
||||||
|
|
||||||
> $ ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
|
|
||||||
|
|
||||||
# Create a Video from Multiple Parts
|
|
||||||
|
|
||||||
First make a text file indicating all the parts, e.g.
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
file /home/sk/myvideos/part1.mp4
|
|
||||||
file /home/sk/myvideos/part2.mp4
|
|
||||||
file /home/sk/myvideos/part3.mp4
|
|
||||||
file /home/sk/myvideos/part4.mp4
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
Then join with:
|
|
||||||
|
|
||||||
> ffmpeg -f concat -i join.txt -c copy output.mp4
|
|
||||||
|
|
||||||
# Add Subtitles
|
|
||||||
|
|
||||||
> fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4
|
|
||||||
|
|
@ -1,14 +1,17 @@
|
|||||||
|
---
|
||||||
|
title: "ffmpeg"
|
||||||
|
tags: [ "Documentation", "Sound", "Vision" ]
|
||||||
|
---
|
||||||
# Basics
|
# Basics
|
||||||
|
|
||||||
|
Translate a media file to a new type.
|
||||||
|
|
||||||
ffmpeg -i [input file] output_file.mkv
|
ffmpeg -i [input file] output_file.mkv
|
||||||
|
|
||||||
The input file might be a device, such as a camera.
|
The input file might be a device, such as a camera.
|
||||||
|
|
||||||
Play video:
|
|
||||||
|
|
||||||
> ffplay file.mp4
|
|
||||||
|
|
||||||
#Record screen
|
#Record screen
|
||||||
|
|
||||||
Take the format as 'grab the x11 screen'.
|
Take the format as 'grab the x11 screen'.
|
||||||
|
|
||||||
> ffmpeg -f x11grab -s [screensize] -i :0.0 out.mkv
|
> ffmpeg -f x11grab -s [screensize] -i :0.0 out.mkv
|
||||||
@ -39,6 +42,7 @@ For problems, see pavucontrol.
|
|||||||
3 = 90Clockwise and vertical flip
|
3 = 90Clockwise and vertical flip
|
||||||
|
|
||||||
# Lower Video Quality
|
# Lower Video Quality
|
||||||
|
|
||||||
A crf quality of 18 is high, while 24 is low quality.
|
A crf quality of 18 is high, while 24 is low quality.
|
||||||
|
|
||||||
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4
|
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4
|
||||||
|
Loading…
Reference in New Issue
Block a user