將字幕檔包入mkv:
內封式:(軟字幕,不影響影像,速度快)
$ ffmpeg -i sourceVideo.mkv -i sourceSubtitle.srt -c copy outputVideo.mkv
$ffmpeg -i infile.mp4 -i infile.idx -i infile.sub -map 0:v -map 0:a -c copy -map 1 -c:s:1 dvd_subtitle -metadata:s:s:1 language=ch outfile.mkv
ffmpeg -i input.mkv -i input.ass -i input.srt -c copy output.mkv
ffmpeg -input.mkv -i input.idx -c copy output.mkv
MP4 只有支援封裝 mov_text 與 dvdsub 格式,
若要將 SRT 字幕插入 MP4 檔內,就必須轉為 mov_text 格式。
ffmpeg -input.mp4 -i input.srt -c copy -c:s mov_text output.mp4
內嵌式:(硬字幕,影響影像,速度慢,可調整字形各種屬性)
$ ffmpeg -i sourceVideo.mp4 -vf "subtitles=sourceSubtitle.srt" outputVideo.mp4
$ ffmpeg -i sourceVideo.mp4 -vf "subtitles=sourceSubtitle.srt:force_style='Fontsize=24'" outputVideo.mp4
ffmpeg -i 1.mp4 -i 1.sub -i 1.idx -filter_complex "[0:v][2:s]overlay=0:H-h" -c:v libx264 out.mp4
[0:v]指的第一个加载的视频文件1.MP4,
[2:s]指的是加载的1.idx文件,因为索引是2,
然后通过overlay=0:H-h将字幕显示在视频下方。
從mkv取出第一軌字幕檔
ffmpeg -i Movie.mkv -c copy -map 0:s:0 sub01.srt
打包mkv檔 (a:audio, v:video, s:subsript)
ffmpeg -i movie.mp4 -i sub.srt -map 0:0
-map 0:1 -map 1 -c:a copy -c:v copy -c:s copy movie.mkv
ffmpeg -i Lupin.mp4 -i Lupin.ass -vcodec copy -acodec copy 2.mkv
提取字幕 (-vn:不要影, -an:不要音, -codec:s:0 srt 要字幕第一軌)
ffmpeg -i video.mkv -vn -an -codec:s:0 srt subtitle.srt
僅提取视频 (Extract Video)
ffmpeg -i movie.mkv -vcodec copy -an videoNoAudioSubtitle.mp4
僅提取音频(Extract Audio)
ffmpeg -i movie.mkv -vn -acodec copy audio.ac3
ffmpeg -i input.mp4 -vn output.mp3
ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3
-vn
– 表明我們已經在輸出檔案中禁用視訊錄製。-ar
– 設定輸出檔案的音訊頻率。通常使用的值是22050 Hz、44100 Hz、48000 Hz。-ac
– 設定音訊通道的數目。-ab
– 表明音訊位元率。-f
– 輸出檔案格式。在我們的例項中,它是 mp3 格式。
僅提取字幕(Extract Subtitle)
ffmpeg -i movie.mkv -map 0:s:0 sub1.srt
ffmpeg -i input.mp4 -c:s srt output.srt
ffmpeg -i input.mkv -c:s copy output.ass
刪除字幕 (Delete Subtitle)
ffmpeg -i sourceVideo.mkv -c copy -sn outputVideo.mkv
更改視訊檔案的解析度
ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4
壓縮並減少輸出檔案的大小
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
壓縮音訊檔案
ffmpeg -i input.mp3 -ab 128 output.mp3
移除視訊流
ffmpeg -i input.mp4 -vn output.mp3
ffmpeg -i input.mp4 -vn -ab 320 output.mp3
切分視訊檔案為多個部分
ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
-t 00:00:30
表示從視訊的開始到視訊的第 30 秒建立一部分視訊。
-ss 00:00:30
為視訊的下一部分顯示開始時間戳。它意味著第 2 部分將從第 30 秒開始,並將持續到原始視訊檔案的結尾。
Make GIF images from a Video
ffmpeg -ss 00:00:20 -i sample.mp4 -to 10 -r 10 -vf scale=200:-1 Animate.gif
- -ss : indicates the starting point of GIF
- -i : input file
- sample.mp4 : My video file name
- -to : End position of the GIF file
- -r : frame rate. You can increase the value to get more quality GIF file
- -vf : filter graph. To scale the GIF image in the desired size.
Create GIF from a list of images
convert -delay 120 -loop 0 *.jpg Animate.gif
Create Video from a list of images
ffmpeg -r 1/10 -i picture-%01d.png -c:v libx264 -r 30 -pix_fmt yuv420p video.mp4
- -r 1/10 : Display each image for 10 seconds.
- -i picture-%01d.png : Reads all pictures that starts with name "picture-", following with 1 digit (%01d) and ending with .png. If the images name comes with 2 digits (I.e picture-10.png, picture11.png etc), use (%02d) in the above command.
- -c:v libx264 : Output video codec (i.e h264).
- -r 30 : framerate of output video
- -pix_fmt yuv420p : Output video resolution
- video.mp4 : Output video file with .mp4 format.
convert your PDF file image format such as PNG or JPG
convert -density 400 input.pdf picture.png
轉換字幕格式
將 MP4 檔內的 mov_text 字幕轉換 subrip 格式:
ffmpeg -i input.mp4 -c copy -c:s subrip output.mkv
轉換 srt 字幕檔為 ass 格式:
ffmpeg -i input.srt -c:s ass output.ass