A: ffmpeg -ss 00:10:10.050 -t 15 -i TEST.mkv -y E1.mpeg
B: ffmpeg -i TEST.mkv -y -ss 00:10:10.050 -to 00:10:25.050 E1.mpeg
C: ffmpeg -ss 00:10:10.010 -to 00:10:25.050 -i TEST.mkv -y E1.mpeg

想要把一個影片檔的其中一段剪下來

A這個指令語法正確 可是需要知道duration(15sec)
B這個指令語法正確 可是要等很久(精準定位)
C這個指令語法錯誤

想請問各位大大 要如何修正C的語法 使其結合A跟B的優點

謝謝!!
文章關鍵字
donotforget0156 wrote:
A這個指令語法正確 可是需要知道duration(15sec)
B這個指令語法正確 可是要等很久(精準定位)

設定選項的所在位置會影響到它的功能
-ss 作為輸入選項 (位於 -i 之前) 直接從指定時間開始讀取/輸出
-ss 作為輸出選項 (位於 -i 之後) 從頭開始讀取,但從指定時間開始輸出

也就是說以下兩種命令都會得到相同的結果:
ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 cut1.mp4
ffmpeg -i video.mp4 -ss 00:01:00 -to 00:02:00 cut2.mp4

但是如果要不重新編碼 (使用 "copy") 的情況下直接切割影片:
ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy cut1.mp4
ffmpeg -i video.mp4 -ss 00:01:00 -to 00:02:00 -c copy cut2.mp4

前者因為 ffmpeg 被迫只能從I畫格 (i-frame) 開始,所以實際的分割點是取最接近的I畫格。
後者精準時間但可能會因為輸出 (cut.mp4) 的第一張畫格不是I畫格,而造成無法正常播放的情況。
改用重新編編碼改變GOP結構可以避免此問題。

donotforget0156 wrote:
C這個指令語法錯誤

-to 只能作為"輸出選項"
輸出設定必須位在 -i 與 輸出檔案之間
例如:
ffmpeg -ss 00:01:00 -i video.mp4 -to 00:02:00 -c copy cut.mp4
ffmpeg -i video.mp4 -ss 00:01:00 -to 00:02:00 -c copy cut.mp4


詳情:
http://www.mobile01.com/topicdetail.php?f=510&t=4461015

kingdragon wrote:
-to 00:02:00 cut2.mp4...(恕刪)


-to 不接受,

改用 -t
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!