wiki/media/Ffmpeg.md
2024-09-25 20:08:22 +03:00

86 lines
1.8 KiB
Markdown

# Ffmpeg. NOTE: Add info about av1/opus when I become sane again.
# Encoders:
* h264: SW - `libx264`, HW - `h264_vaapi`.
* h265: SW - `libx265`, HW - `hevc_vaapi`.
# VHS to h264.
```text
ffmpeg -i 'concat:VTS_01_1.VOB|VTS_01_2.VOB|VTS_01_3.VOB|VTS_01_4.VOB|VTS_01_5.VOB' -c:v libx264 -c:a aac -standard NTSC -preset veryslow -vf yadif ./out.mkv
```
# Add audio.
```text
ffmpeg -i video.mkv -i audio.mp3 -map 0 -map 1:a -c:v copy -shortest output.mkv
```
# Replace audio.
```text
ffmpeg -i Episode\ S01E03.mkv -i RUS\ Sound/Episode\ S01E03.mka -c copy -map 0:v:0 -map 1:a:0 -shortest with_audio/Episode\ S01E03.mkv
```
# Add thumbnail to mkv.
```text
ffmpeg -i video.mkv -attach cover.jpg -metadata:s:t:0 mimetype=image/jpeg -c copy out.mkv
```
# Hardware vaapi.
Encode only:
```text
ffmpeg -vaapi_device /dev/dri/renderD128 -i video.mkv -vf 'format=nv12,hwupload' -c:v hevc_vaapi out.mkv
```
Decode + encode:
```text
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i video.mkv -c:v hevc_vaapi out.mkv
```
# Add image to music (Album cover).
```text
ffmpeg -i audio.flac -i image.png -map 0:a -map 1 -codec copy -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" -disposition:v attached_pic output.flac
```
# Scale down video.
```text
ffmpeg -i input4kvid.mp4 -vf scale=1920:1080 output1080vid.mp4
```
This one may require using -2 or -4 in some cases.
```text
ffmpeg -i input.avi -vf scale=720:-1 -c:a copy output.mkv // -1 for auto height.
```
For vaapi use `scale_vaapi=-1:720`.
# Limit to specific CPUs.
```text
taskset -c 0 ffmpeg...
taskset -c 0,2 ffmpeg...
```
# Edit metadata.
```text
ffmpeg -i input.mkv -codec copy -metadata "key=value" output.mkv
```
# Cut video.
Drop -c:* to re-encode.
```text
ffmpeg -i Input.mkv -ss 00:00:00 -t 00:15:00 -c:v copy -c:a copy Output.mkv
```