PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
沒問題
Major Member
 

加入日期: Dec 2015
文章: 210
FFmpeg的最佳設定…

我的原始檔案用的是1920x1080@120FPS with 2Ch [email protected] in 128k.
使用4070及32線程CPU。
我的FFmpeg是於『https://www.gyan.dev/ffmpeg/builds/』下載,這是從官方網站引導出來的,因為FFmpeg本身不製作可執行檔,所以都是由他人製作完成。
而我用的FFmpeg版本是2025-06-17-git-ee1f79b0fa-full版本。

==================================================================
裁切黑邊是要注意第一次分析的訊息,如『[Parsed_cropdetect_0 @ 00000202cd98df40] x1:0 x2:1919 y1:17 y2:1059 w:1920 h:1040 x:0 y:20 pts:138801663 t:9036.566602 limit:0.094118 crop=1920:1040:0:20

crop=1920:1040:0:20這段訊息就是你需要保留的長寬以及你需要裁切的長寬。
也就是第二次編碼時所需要的部份,可以注意看下面-vf "crop=1920:1040:0:20"的部份。

------------------裁切黑邊------------------
ffmpeg -i -threads 32 123.mp4 -vf cropdetect -f null -

H264模式
ffmpeg -y -threads 8 -i 123.mp4 -vf "crop=1920:1040:0:20" -c:v libx264 -profile:v high10 -level 4.1 -pix_fmt yuv420p10le -preset veryslow -crf 15 -g 80 -refs 4 -fps_mode cfr -c:a copy 123crop.mp4

NVENC模式
ffmpeg -y -hwaccel cuda -threads 8 -i 123.mp4 -vf "crop=1920:1040:0:20" -c:v h264_nvenc -profile:v high -pix_fmt yuv420p -preset p7 -cq 9 -g 80 -refs 4 -rc-lookahead 64 -b_ref_mode middle -aq 2 -spatial-aq 1 -temporal-aq 1 -fps_mode cfr -c:a copy 123crop.mp4

HEVC模式
ffmpeg -y -hwaccel cuda -threads 8 -i 123.mp4 -vf "crop=1920:1040:0:20" -c:v hevc_nvenc -profile:v main10 -level 5.1 -pix_fmt yuv420p10le -preset p1 -cq 9 -g 80 -refs 4 -rc-lookahead 64 -b_ref_mode middle -aq 2 -spatial-aq 1 -temporal-aq 1 -fps_mode cfr -c:a copy 123crop.mp4



==================================================================
以下是將FHD影片轉換成mpeg2存放影片的人使用,建議配合DVD DL 8.4GB使用。若你有SRT字幕,可以用Subtitile Edit將SRT轉成idx/sub Vobsub格式,再用Mkvtoolnix將之合併。
我都將設定調至最佳畫質,且所有的參數都是以最佳畫質來指定,若有不同的需要『畫質或容量』,可以自行刪減或是減少碼率。
這個設定最後可以製作出真正可以在DVD上播放的影片。

------------------使用DVD Mpeg2可變位元速率且採用二次編碼分析並將解析度降至[email protected] with 2Ch AC3@48 in 192k------------------
ffmpeg -y -hwaccel cuda -i "123crop.mp4" -threads 32 -vf "scale=720:480,setsar=32/27" -r 30000/1001 -aspect 16:9 -c:v mpeg2video -b:v 7500k -minrate 3500k -maxrate 9500k -bufsize 1835k -g 10 -bf 2 -pass 1 -an -fps_mode cfr -f mpeg2video NUL

ffmpeg -y -hwaccel cuda -i "123crop.mp4" -threads 32 -vf "scale=720:480,setsar=32/27" -r 30000/1001 -aspect 16:9 -c:v mpeg2video -b:v 7500k -minrate 3500k -maxrate 9500k -bufsize 1835k -g 10 -bf 2 -pass 2 -qmin 1 -qmax 2 -dc 10 -sc_threshold 20 -mbd rd -cmp 10 -subcmp 10 -precmp 10 -dia_size 6 -intra_vlc 1 -trellis 2 -non_linear_quant 1 -flags +bitexact -flags -ilme -flags -ildct -mpv_flags +mv0 -c:a ac3 -b:a 192k -ar 48000 -ac 2 -fps_mode cfr -f dvd "FinalDVD-VBR-MAX.mpg"



==================================================================
以下是給使用DVD存放影片的人使用,建議使用。若你有SRT字幕,可以用Subtitile Edit將SRT轉成idx/sub Vobsub格式,再用Mkvtoolnix將之合併。
我都將設定調至最佳畫質,且所有的參數都是以最佳畫質來指定,若有不同的需要『畫質或容量』,可以自行刪減或是減少碼率。

------------------使用平均位元速率並將解析度降至[email protected] with 2Ch [email protected] in 128k------------------
ffmpeg -y -hwaccel cuda -i "d:\123crop.mp4" -threads 32 -vf "scale=720:480,fps=29.97,setdar=16/9" -aspect 16:9 -c:v libx264 -crf 18 -profile:v high10 -level 5.1 -pix_fmt yuv420p10le -preset veryslow -x264-params "rc-lookahead=120:keyint=80:min-keyint=1:ref=8:bframes=6:b-adapt=2:direct=auto:me=umh:subme=12:trellis=2:aq-strength=1.2:psy-rd=1.0,0.15:deblock=1,1:mbtree=1:mixed-refs=1:weightp=2:chroma-qp-offset=-2:no-fast-pskip=1" -c:a aac -b:a 128k -ar 44100 -ac 2 -movflags +faststart "Final264DVD-ABR-MAX.mkv"

------------------使用可變位元速率且採用二次編碼分析並將解析度降至[email protected] with 2Ch [email protected] in 128k------------------
ffmpeg -y -hwaccel cuda -i "123crop.mp4" -threads 32 -vf "scale=720:480,fps=29.97,setdar=16/9" -aspect 16:9 -c:v libx264 -profile:v high10 -level 5.1 -pix_fmt yuv420p10le -preset veryslow -b:v 2500k -maxrate 9000k -bufsize 12000k -pass 1 -passlogfile "ffmpeg-pass" -x264-params "nal-hrd=vbr:vbv-bufsize=12000:vbv-maxrate=9000:rc-lookahead=120:keyint=80:min-keyint=1:ref=8:bframes=6:b-adapt=2:direct=auto:me=umh:subme=12:trellis=2:aq-strength=1.2:psy-rd=1.0,0.15:deblock=1,1:mbtree=1:mixed-refs=1:weightp=2:chroma-qp-offset=-2:no-fast-pskip=1" -an -f mp4 NUL

ffmpeg -y -hwaccel cuda -i "d:\123crop.mp4" -threads 32 -vf "scale=720:480,fps=29.97,setdar=16/9" -aspect 16:9 -c:v libx264 -profile:v high10 -level 5.1 -pix_fmt yuv420p10le -preset veryslow -b:v 2500k -maxrate 9000k -bufsize 12000k -pass 2 -passlogfile "ffmpeg-pass" -x264-params "nal-hrd=vbr:vbv-bufsize=12000:vbv-maxrate=9000:rc-lookahead=120:keyint=80:min-keyint=1:ref=8:bframes=6:b-adapt=2:direct=auto:me=umh:subme=12:trellis=2:aq-strength=1.2:psy-rd=1.0,0.15:deblock=1,1:mbtree=1:mixed-refs=1:weightp=2:chroma-qp-offset=-2:no-fast-pskip=1" -c:a aac -b:a 128k -ar 44100 -ac 2 -movflags +faststart "Final264DVD-VBR-MAX.mkv"



==================================================================
以下是給使用DVD存放影片的人使用,基本上不建議使用,唯一好處就是可以用NVENC可以大大的提高速度。若你有SRT字幕,可以用Subtitile Edit將SRT轉成idx/sub Vobsub格式,再用Mkvtoolnix將之合併。
我都將設定調至最佳畫質,且所有的參數都是以最佳畫質來指定,若有不同的需要『畫質或容量』,可以自行刪減或是減少碼率。

------------------使用NVENC之固定位元速率並將解析度降至[email protected] with 2Ch [email protected] in 128k------------------
ffmpeg -y -hwaccel cuda -i "123crop.mp4" -threads 8 -vf "scale=720:480,fps=29.97,setdar=16/9" -aspect 16:9 -c:v h264_nvenc -preset p7 -profile:v high -rc constqp -cq 10 -g 80 -refs 4 -b_ref_mode middle -aq 2 -spatial-aq 1 -temporal-aq 1 -c:a aac -b:a 128k -ar 44100 -ac 2 -movflags +faststart "Final264DVD-CBR-NVENC-MAX.mkv"


------------------使用NVENC之可變位元速率並將解析度降至[email protected] with 2Ch [email protected] in 128k------------------
ffmpeg -y -hwaccel cuda -i "123crop.mp4" -threads 8 -vf "scale=720:480,fps=29.97,setdar=16/9" -aspect 16:9 -c:v h264_nvenc -preset p7 -profile:v high -rc vbr -tune hq -cq 10 -g 80 -refs 4 -rc-lookahead 160 -b_ref_mode middle -multipass 2 -b:v 13000k -maxrate 16000k -minrate 4000k -bufsize 18000k -aq 2 -spatial-aq 1 -temporal-aq 1 -c:a aac -b:a 128k -ar 44100 -ac 2 -movflags +faststart "Final264DVD-VBR-NVENC-MAX.mkv"

==================================================================
要注意的事情是,若是-profile:v high10 -level 5.1 -pix_fmt yuv420p10le會造成無法播放的情況,應使用VLC播放。
若要完全的相容則應該將其改為-profile:v high或是-profile:v high -level 4.1 -pix_fmt yuv420p。

另外,MKV也會造成影響,若仍無法改善則應改為只使用-profile:v high搭配MP4。
     
      

此文章於 2025-07-05 05:57 AM 被 沒問題 編輯.
舊 2025-07-04, 12:06 AM #1
回應時引用此文章
沒問題現在在線上  
PM
Power Member
 
PM的大頭照
 

加入日期: Sep 2006
文章: 539
看不太懂這樣轉整個目的是什麼
如果是要燒成DVD Video, 印象中可用的格式很嚴格,不是轉mpeg2就可以直接燒

再來可以直接播MP4的機器,可以吃的格式就多了,只要流量裝得進DVD, 就是塞到滿
如果是舊機器,我建議直接換新的,為了舊機器用舊格式,太辛苦了沒必要

用到VLC 用行動裝置或電腦播嗎?那downscale的目的是什麼?
我現在轉檔都是走h.265或是VC1,用電腦播就是用最佳格式最高流量,轉好丟YouTube甚至不需要自備儲存空間
 
舊 2025-07-04, 09:50 AM #2
回應時引用此文章
PM離線中  
msnow
Major Member
 

加入日期: Nov 2004
文章: 182
咦好像很複雜
這個okx介紹的vedioproc搞不定嗎?
舊 2025-07-04, 01:02 PM #3
回應時引用此文章
msnow離線中  
沒問題
Major Member
 

加入日期: Dec 2015
文章: 210
引用:
作者PM
看不太懂這樣轉整個目的是什麼
如果是要燒成DVD Video, 印象中可用的格式很嚴格,不是轉mpeg2就可以直接燒

再來可以直接播MP4的機器,可以吃的格式就多了,只要流量裝得進DVD, 就是塞到滿
如果是舊機器,我建議直接換新的,為了舊機器用舊格式,太辛苦了沒必要

用到VLC 用行動裝置或電腦播嗎?那downscale的目的是什麼?
我現在轉檔都是走h.265或是VC1,用電腦播就是用最佳格式最高流量,轉好丟YouTube甚至不需要自備儲存空間


現在很多影片已經不會發行DVD了。
另一個問題是BD也不會發行。

經過一番考慮後,我選擇下放到DVD。
因為,DVD還是比較常用,而且BD實在太大了,真的很浪費時間。

其實以上的設定也可以把字幕轉成SUP,而且設定也很接近BD。
我會經常把以前的DVD都轉成MP4來保存,所以我也需要常常調適這些設定。

再者MKV會鎖定你的長寬比,如果你的片源是FHD的非DVD,為了換成HD,長寬比是會變的,可是檔案回到4K螢幕播放時,並沒有辦法全螢幕。

把影片放在YT我以前也做過,可是發生了一個悲劇,就是YT鎖了我的帳號。

引用:
作者msnow
咦好像很複雜
這個okx介紹的vedioproc搞不定嗎?


我有CloneBD、Nero Video、Nero Record、Topaz Video AI、HandBreak等…我用過很多,我只想要轉出時保存最好的畫質而以。

此文章於 2025-07-04 03:35 PM 被 沒問題 編輯.
舊 2025-07-04, 03:07 PM #4
回應時引用此文章
沒問題現在在線上  
a9607
Master Member
 
a9607的大頭照
 

加入日期: Oct 2001
文章: 2,257
引用:
作者沒問題
現在很多影片已經不會發現DVD了。
另一個問題是BD也不會發行。

經過一番考慮後,我選擇下放到DVD。
因為,DVD還是比較常用,而且BD實在太大了,真的很浪費時間。

其實以上的設定也可以把字幕轉成SUP,而且設定也很接近BD。
我會經常把以前的DVD都轉成MP4來保存,所以我也需要常常調適這些設定。

再者MKV會鎖定你的長寬比,如果你的片源是FHD的非DVD,為了換成HD,長寬比是會變的,可是檔案回到4K螢幕播放時,並沒有辦法全螢幕。

把影片放在YT我以前也做過,可是發生了一個悲劇,就是YT鎖了我的帳號。



我有CloneBD、Nero Video、Nero Record、Topaz Video AI、HandBreak等…我用過很多,我只想要轉出時保存最好的畫質而以。


不管是 MKV、MP4都可以用FFMpeg設定比率,有兩個不同的參數可以設定,因為有的播放器讀取判斷的的是第一個參數,有的是第二個

另外這個所謂「FFmpeg的最佳設定」是值得商榷的

一般會說 「個人推薦」「個人的最佳化」設定,
因為所謂的最佳化是因人而異的
每個人的需求跟要求都不盡相同,很難用一個最佳化來涵蓋



__________________
超準的星座分析!

此文章於 2025-07-04 08:13 PM 被 a9607 編輯.
舊 2025-07-04, 03:46 PM #5
回應時引用此文章
a9607離線中  
沒問題
Major Member
 

加入日期: Dec 2015
文章: 210
引用:
作者a9607
不管是 MKV、MP4都可以用FFMpeg設定比率,有兩個不同的參數可以設定,因為有的播放器讀取判斷的的是第一個參數,有的是第二個

怒刪…


你是用什麼修正MKV無法全螢幕這個問題的?

我製作出MP4後,都可以正常拉伸。全螢幕也可以。一封裝進MKV就變成按照720x480。不會跟著變全螢幕。
舊 2025-07-04, 05:24 PM #6
回應時引用此文章
沒問題現在在線上  
a9607
Master Member
 
a9607的大頭照
 

加入日期: Oct 2001
文章: 2,257
引用:
作者沒問題
你是用什麼修正MKV無法全螢幕這個問題的?

我製作出MP4後,都可以正常拉伸。全螢幕也可以。一封裝進MKV就變成按照720x480。不會跟著變全螢幕。


1、理論上只要用上 aspect ,基本上幾乎所有近些年的播放軟體或硬體player都可以辨識並正常播放

2、有些軟體或早期的硬體就得去改stream值,但是目前幾乎都不需要了

用上 1 無法抓到長寬比,建議換個播放軟體或硬體測試看看。

如果2都用上還是抓不到長寬比,只能換播放軟體或硬體了…

__________________
超準的星座分析!
舊 2025-07-04, 06:53 PM #7
回應時引用此文章
a9607離線中  
PM
Power Member
 
PM的大頭照
 

加入日期: Sep 2006
文章: 539
引用:
作者沒問題
你是用什麼修正MKV無法全螢幕這個問題的?

我製作出MP4後,都可以正常拉伸。全螢幕也可以。一封裝進MKV就變成按照720x480。不會跟著變全螢幕。

你這可能是播放器的問題, MKVToolNix指定比例後, 不管解析是多少都會照指定的比例播放
https://upload.cc/i1/2025/07/04/xgTdDK.png
如果不行, 百面是播放器的問題
舊 2025-07-04, 07:10 PM #8
回應時引用此文章
PM離線中  
沒問題
Major Member
 

加入日期: Dec 2015
文章: 210
引用:
作者PM
你這可能是播放器的問題, MKVToolNix指定比例後, 不管解析是多少都會照指定的比例播放
https://upload.cc/i1/2025/07/04/xgTdDK.png
如果不行, 百面是播放器的問題


你好…

請參考…
這是我在mkvtoolnix中的設定。
https://upload.cc/i1/2025/07/04/s0DWj8.png
這是封裝在mkv時的畫面大小。
https://upload.cc/i1/2025/07/04/aGM9o6.png
這是還在mp4時的畫面大小。
https://upload.cc/i1/2025/07/04/o2sYZ1.png

看到你的設定後,我也試了一下,結果在VLC下是正常的,但是在Windows 11中的媒體播放器時,就會縮回720x480。
我用的都是同一個mp4影片,直接播放mp4時,Windows 11媒體播放器能全螢幕,但是封裝以後,就算按mkvtoolnix設定,設置成16/9 1920x1080後,也會保持720x480?但在VLC中就沒有問題。
為什麼我注意到這個問題,是因為我發現如果你用makemkv獲得的Mkv,經過VLC轉換成H264的MP4後,再封裝回任何的mkv,這樣的影片就可以任意的拉伸及全螢幕。
但是只要不經過VLC或是只用FFmpeg,就不行,就算我用Nero Video或是Nero Record也不行。

此文章於 2025-07-04 09:05 PM 被 沒問題 編輯.
舊 2025-07-04, 08:56 PM #9
回應時引用此文章
沒問題現在在線上  
a9607
Master Member
 
a9607的大頭照
 

加入日期: Oct 2001
文章: 2,257
會不會是把 設定 長寬比 跟 設定縮放係數 混淆了



一般轉檔時,只會管(設定)長寬比,不會去設定縮放係數

長寬比正確了,畫面要怎麼縮放/調整/FIT 就是 播放軟/硬體的事了

因為每個人的螢幕都不見得一樣,到頭來幾乎播放軟體都得根據當下的螢幕解析度和使用者的設定來縮放


如果播放軟體設定正確的話,不管是切到全螢幕或是設定的縮方比例都可以維持正確的寬比的


__________________
超準的星座分析!
舊 2025-07-04, 10:24 PM #10
回應時引用此文章
a9607離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是06:36 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。