# [FFmpeg] 無損輸出 ## 簡介 若要無損輸出有三種方式可以達到: 1. 直接複製輸入串流 2. 輸出為無壓縮格式 3. 輸出為無損壓縮格式 ## 串流複製 如果只是要分割檔案或是改變檔案格式,則建議直接複製輸入串流至輸出檔案即可。 命令: ```powershell ffmpeg -i INPUT -c copy OUTPUT ``` 將 MPEG-4 檔案格式重新封裝為 Matroska: ```powershell ffmpeg -i input.mp4 -c copy output.mkv ``` ## 無壓縮格式 無壓縮格式 通常用來作為暫存檔案,例如當需要使用的影音工具不支援來源檔的視音訊格式時,或是當你用 FFmpeg 處理後要輸出給其他影音工具進行其他處理時,則效率比較高的做法是輸出為無壓縮格式 (例如 RGB 或 PCM) 給其他工具讀取。 ### 無壓縮視訊 要將輸入視訊串流轉成無壓縮格式可以使用 `-c:v rawvideo`,且輸出檔案推薦使用 AVI 或是 MKV 格式。 命令: ```powershell ffmpeg -i INPUT -an -c:v rawvideo OUTPUT ``` 若是直接輸出無封裝的視訊串流 可以使用 `-f rawvideo`,(當設定輸出檔案格式為 `rawvideo` 時預設編解碼器為 `rawvideo`。`-c:v rawvideo` 這時可以被省略,只需 `-f rawvideo`) ### 無壓縮音訊 要將輸入音訊串流轉成無壓縮格式,直接指定輸出檔案格式為 WAV 且不指定音訊編解碼器,輸入音訊串流將被轉為無壓縮音訊格式 (PCM)。 命令: ```powershell ffmpeg -i INPUT -vn -f wav OUTPUT ``` 若輸出檔案格式不是 WAV,則必須手動指定音訊編解碼器,例如 pcm_s16le 或 pcm_s32le... ```powershell ffmpeg -i INPUT -c:v rawvideo -c:a pcm_s16le OUTPUT ``` ## 無損壓縮格式 無損壓縮格式的使用目的大多與無壓縮格式相同,如果儲存空間不足的情況下可以使用無損壓縮格式作為暫存檔案格式。但(有/無損)視訊壓縮格式雖然節省儲存空間,但非常的消耗 CPU 與 RAM 資源,會浪費比較多時間,若用它來作為暫存檔案是效率比較差的做法。 ### 無損壓縮視訊 若需要無損壓縮視訊推薦使用 H.264 / AVC 的無損模式,你可使用使用 FFmpeg 的 libx264 或是 libx264rgb 編碼器,並搭配 `-qp 0` 來輸出無損 H.264 視訊。 命令: ```powershell ffmpeg -i INPUT -an -c:v libx264 -qp:v 0 -preset:v ultrafast OUTPUT ``` 如果只是要輸出一個暫存檔給其他工具編輯,則建議使用 `-preset:v ultrafast` 來減少 CPU 負擔,雖然會輸出更巨大的檔案,但可以節省許多時間。 libx264, libx264rgb: https://ffmpeg.org/ffmpeg-all.html#libx264_002c-libx264rgb ### 無損壓縮音訊 若需要無損壓縮視訊推薦使用 FLAC 格式。 命令: ```powershell ffmpeg -i INPUT -vn -c:a flac OUTPUT ``` ###### tags: `ffmpeg`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up