Re: [請問] 轉檔出現怪現象

看板AVEncode (影音編碼技術)作者 (falcon)時間11年前 (2013/12/11 17:53), 編輯推噓1(1021)
留言22則, 4人參與, 最新討論串8/8 (看更多)
剛剛不小心把文章刪了 只好重發 (′゚д゚`) 這個給你參考 https://www.dropbox.com/s/y9nuoprdmaij98z/AutoRec.7z 把影片檔拖給 AutoRecodec.bat 開啟即可 qaac 需要安裝 Apple Application Suport QuickTime 或 iTunes 安裝包內有 我已經在 qaac 目錄下放入 Apple 的 dll 所以不需要安裝 Apple Application Suport 如果不行的話還是安裝看看 ffmpeg -i "輸入檔案" 參數 "輸出檔案" qaac 參數 -o "輸出檔案" "輸入檔案" 使用 ffmpeg 解碼為 WAV (PCM) 給 qaac 編碼輸出 M4A(AAC) ffmpeg -i "輸入檔案" 參數 - | qaac 參數 --ignorelength -o "輸出檔案" - ffmpeg -i "%~1" -vn -ac 2 -async 1 -f wav -y - | qaac -q 2 --tvbr 100 --ignorelength -o "%~dp1TempAudio.m4a" - -vn 禁用視訊 -an 禁用音訊 -sn 禁用字幕 -ac 2 是 downmix 至 雙聲道(6即5.1,8即7.1) 如果你有多聲道輸出的話就刪掉吧 -async 1 如果音訊有延遲則會插入空白部分填補 這樣音訊和視訊一樣長,就不會 不同步 qaac 的部分 -q 2 有最高校率 --tvbr 100 為 VBR 模式 指定輸出品質 0~127 可選 ffmpeg -i "%~1" -i "%~dp1TempAudio.m4a" -c:a copy -map 0:v -map 1:a -vf scale='1280:trunc((1280/dar)/16+0.5)*16' -c:v libx264 -profile:v high -preset veryslow -x264opts crf=18:ref=4:bframes=5 -y "%~dp1%~n1.recode.mp4" -c:a copy 是複製音訊 -map 0:v -map 1:a 篩選出 第一個(0)輸入檔的視訊 與 第二個(1)輸入檔的音訊 例 -map 0:1 篩選出 第一個輸入檔的第二個 track 例 -map 0:s:2 篩選出 第一個輸入檔的第三個 字幕track -vf scale='1280:trunc((1280/dar)/16+0.5)*16 scale=寬:高 假輸入檔為 1440x1080 PAR=4/3 那輸入檔 dar 就是 (1440/1080)*(4/3)=16/9 1280/dar 就是輸出高, trunc() 就是取整數,trunc(數值/16+0.5)*16 就是取16整數倍 不喜歡的話就刪掉吧 縮到 1280x* 是因為 高解析度影片的位元速率都需要很大才能維持畫質 否則還不如 Resize 縮小解析度 至於x264 我懶得調整細部參數 都是直接用 x264 preset + ref 或 x264 preset + h.264 level 詳細請 Google... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.173.98.192 ※ 編輯: falcon 來自: 1.173.98.192 (12/11 17:55) ※ 編輯: falcon 來自: 1.173.98.192 (12/11 18:06) ※ 編輯: falcon 來自: 1.173.98.192 (12/11 18:37)

12/11 18:51, , 1F
推分享
12/11 18:51, 1F
※ 編輯: falcon 來自: 1.173.98.192 (12/12 01:25)

12/12 09:37, , 2F
<=不會用ffmpeg 和時代脫節的廢渣orz
12/12 09:37, 2F

12/12 11:46, , 3F
別說得那麼難聽嘛,MEGUI配AVS自動產生,的確好用
12/12 11:46, 3F

12/12 11:46, , 4F
但 AviSynth 很久沒更新了,一堆問題
12/12 11:46, 4F

12/12 11:47, , 5F
現在有類似 AviSynth 的替代方案 - VapourSynth
12/12 11:47, 5F
※ 編輯: falcon 來自: 1.173.98.192 (12/12 11:58)

12/12 12:14, , 6F
AVS一堆問題? 只有不會用的人才一堆問題
12/12 12:14, 6F

12/12 12:15, , 7F
而且AVS+ 正由另一群人在開發中 目標是原生多線程+x64
12/12 12:15, 7F

12/12 12:16, , 8F
VPS現在開發的還不夠完整 事實上不太能用
12/12 12:16, 8F

12/12 12:44, , 9F
VapourSynth 確實還沒完善,需要再等等
12/12 12:44, 9F

12/12 12:50, , 10F
AVS 問題一堆不是我只有我在說而已
12/12 12:50, 10F

12/12 12:53, , 11F
AVS載入視訊後會流失一些訊息,必須靠第三方工具取得
12/12 12:53, 11F

12/12 12:54, , 12F
如 Pixel aspect ratio, display aspect ratio
12/12 12:54, 12F

12/12 12:55, , 13F
這對我而言很困擾,因為我要用C#或是BAT製作無腦轉換方案
12/12 12:55, 13F

12/12 13:00, , 14F
我希望能高度自動化,減少麻煩,我才不喜歡AVS
12/12 13:00, 14F

12/12 13:06, , 15F
用AVS作會複雜很多,而ffmpeg單一工具就能解決大部分問題
12/12 13:06, 15F

12/12 14:56, , 16F
高度自動化會出的問題是因為源濾鏡的選擇 而非AVS的問題
12/12 14:56, 16F

12/12 14:57, , 17F
選到不適合的源濾鏡就會直接載入錯誤影像
12/12 14:57, 17F

12/12 14:58, , 18F
甚至連載入都不能就終止了
12/12 14:58, 18F

12/12 15:32, , 19F
常用demuxer decoder,ffmpeg都有內建,會自動載入合適的
12/12 15:32, 19F
而 resize 是最基本東西,但使用AVS要自動化處裡還真難搞 變形顯示比例的 Pixel Aspect Ratio, Display Aspect Ratio 假設來源是以下... 704x480, NTSC 16:9 (PAR 40:33), DAR 1.78:1 720x480, NTSC 16:9 (PAR 40:33), DAR 1.82:1 1440x1080, PAR 4:3, DAR 1.78:1 ffmpeg 寫個 function 即可自動 Resize,不必手動計算輸入 無論來源 解析度 PAR DAR 如何,都能正確處理 輸出: 1280x* (取 mod 16), 自動PAR(令DAR與來源相同) scale='1280:trunc((1280/dar)/16+0.5)*16' 輸出: 寬<1280 & 高<720 (取 mod 16), PAR 1:1 scale='min(1280,trunc((720*dar)/16+0.5)*16):min(720,trunc((1280/dar)/16+0.5)*16)',setsar=sar=1/1 輸出: Letterbox, 720x480, PAR 40:33 scale='min(720,trunc((480*33/40*dar)/16+0.5)*16):min(480,trunc((720*40/33/dar)/16+0.5)*16)',pad='w=720:h=480:x=(ow-iw)/2:y=(oh-ih)/2',setsar=sar=40/33 而 AVS 可以用來源的寬高計算 DAR 但如果 PAR 不是 1:1,則會得到錯誤的DAR 只能呼叫第三方程式取得原始 DAR 或 PAR 後將 resize function 插入 AVS ※ 編輯: falcon 來自: 1.173.98.192 (12/12 15:33) ※ 編輯: falcon 來自: 1.173.98.192 (12/12 15:35) ※ 編輯: falcon 來自: 1.173.98.192 (12/12 15:40)

12/12 17:04, , 20F
VFR的timecode以及AudioDelay,AVS好像能用ffms自動處理
12/12 17:04, 20F

12/12 17:04, , 21F
但速度比lavf慢,支援格式也較少
12/12 17:04, 21F

12/12 17:10, , 22F
AVS相對也比較消耗資源,相同filters、decoder
12/12 17:10, 22F
文章代碼(AID): #1Ig3O9rB (AVEncode)
文章代碼(AID): #1Ig3O9rB (AVEncode)