看板 MaRoon
作者 標題 FFmpeg 影音檔處理
時間 2015年03月04日 Wed. PM 08:57:28
自由軟體: https://www.ffmpeg.org/
http://sourceforge.net/projects/ffmpeg-gui/?source=navbar
(-f dshow) https://github.com/rdp/screen-capture-recorder-to-video-windows-free
說明: 可以執行音訊和視訊多種格式的錄影、轉檔、串流功能
維基百科: http://zh.wikipedia.org/wiki/FFmpeg
更多資訊: https://gist.github.com/sxyx2008/9d5572a25063790db5fb
[支援格式]
ffmpeg -formats
[取得資料]
ffmpeg -i filename.mp4
或
ffprobe filename.mp4
查詢可用影音裝置
ffmpeg -list_devices true -f dshow -i dummy
[錄影]
ffmpeg -f gdigrab -i desktop out.mp4
desktop: 抓取整張桌面, 或者抓取桌面中的一個特定的區域。
ffmpeg -f gdigrab -i title="窗口名" out.mp4
title=窗口名稱: 抓取屏幕中特定的一個窗口。
※註: 似乎只支援英文窗口名
ffmpeg -f gdigrab -framerate 5 -offset_x 10 -offset_y 20 -video_size 640x480 -i desktop out.mp4
從屏幕的(10,20)點處開始,抓取640x480的屏幕,設定幀率(FPS)為5
screen-capture-recorder 查閱 readme.txt:
ffmpeg -f dshow -i video="screen-capture-recorder" -r 30 -t 10 screen-capture.mp4
關鍵參數: -r FPS -t 持續時間長度
[轉檔]
ffmpeg -i input.mp4 output.avi
註: -c:v copy -c:a copy -c:s copy 斟酌使用
(v=video a=audio s=subtitle指字幕)
[轉畫質]
(1080p to 720p)
ffmpeg -i input.mp4 -vcodec libx264 -preset ultrafast -s 1280x720 -acodec copy output.mp4
[壓縮影片] (容量壓小)
ffmpeg -i input.mp4 -vcodec libx264 -b:v 3000k -r 25 -threads 0 -acodec copy -y output.mp4
用 libx264 壓出來的檔案又小畫質又好, 壓縮率主要最決於 bitrate (bits/s), 注意 FPS 設定的頓挫現象
(bitrate與壓縮後容量成正比, 其中bitrate即位元率)
[添加字幕] (UTF-8中文的話需要設定環境變數)
ffmpeg -i my_subtitle.srt my_subtitle.ass
ffmpeg -i inputfile.mp4 -vf ass=my_subtitle.ass outputfile.mp4
在ffmpeg裡需要首先將srt字幕轉化為ass字幕,然後就可以集成到視頻中了(不是單獨的字幕流,而是直接改寫視頻流)。
[嵌入.str或.ass字幕] (推薦)
ffmpeg -i input.mp4 -i subtitles.ass -c:s mov_text -c:v copy -c:a copy output.mp4
ffmpeg -i input.mp4 -i subtitles.srt -c:s mov_text -c:v copy -c:a copy output.mp4
不是把字幕文件集成到 MP4 文件裡,而是在播放器裡選擇字幕,這種集成字幕比較簡單
註: .ass 檔可改字幕相關屬性(字型.字體.顏色...ect)
字幕製作: http://goo.gl/X7Km5
[提取字幕]
ffmpeg -i output.mkv -an -vn -scodec copy sub3.ass
ffmpeg -i output.mkv -an -vn -scodec copy sub3.str
[添加水印]
ffmpeg -i input.mp4 -i filename.gif -filter_complex overlay="(main_w/2)-(overlay_w/2):(main_h/2)-(overlay_h)/2" output.mp4
關鍵參數: -i filename.gif 水印圖片 overlay 水印位置
線上製作 Logo: http://cooltext.com/
[合併影片]
ffmpeg -i "concat:input1.flv|input2.flv|input3.flv" -c copy output.mp4
關鍵參數: -c copy 複製 視訊、音訊等資料流 (不重新編碼)
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
先把 mp4 封裝成 ts ,然後 concate ts 流, 最後再把 ts 流轉化為 mp4。
[分割檔案]
ffmpeg -i input.mkv -ss 00:00:00.000 -t 00:29:59.999 -c copy output1.mkv
關鍵參數: -ss 開始時間 -t 擷取長度
[影片截圖]
ffmpeg -i input.mp4 -y -f image2 -ss 3 -vframes 1 output.jpg
關鍵參數: -ss 開始時間 -vframes 截圖幀數
[提取聲音]
輸入影片檔案,指定輸出為聲音檔案。ffmpeg會幫你把影片中的聲音分離出來。
ffmpeg -i input.mp4 -vol 200 output.mp3
關鍵參數: -vol 200 的參數,會讓輸出的mp3音量變成200%
[移除聲音]
ffmpeg -i input.mp4 -an output.mp4
-an 指的是 disable audio recording
[加入聲音]
ffmpeg -i video.mp4 -itsoffset hh:mm:ss[.xxx] -i audio.mp3 -map 0:0 -map 1:0 -codec copy test.mp4
關鍵參數: itsoffset offset點,初始播放點 -map 甭調整
[播放]
ffplay filename.mp4
[指定字幕設定]
subtitles=sub.srt
指定輸入字幕檔名。由於無法指定路徑,所以字幕檔必須位於工作目錄。
[翻轉/旋轉]
ffplay -i input.mp4 [-vf ..|transpose ..]
存檔流水號: %3d.jpg → 001.jpg, 002.jpg, ...
--
※ 作者: KTR150Fi 時間: 2015-03-04 20:57:28
※ 編輯: KTR150Fi 時間: 2016-06-01 02:19:30
※ 看板: MaRoon 文章推薦值: 0 目前人氣: 0 累積人氣: 3194
回列表(←)
分享