簡體   English   中英

FFMPeg 2通過c#

[英]FFMPeg 2 pass c#

我一直在網上搜索以嘗試找到FFMPeg及其細微差別的良好演練。

我目前有一個可以正常使用的設置。 這是兩遍編碼。 如果我使用cmd窗口並使用以下參數:

ffmpeg -ic:\\ temp \\ 175663.lbl.mp4.mps -vcodec mpeg4 -b:v 1300k -s 640x360 -aspect 16:9 -pass 1 -r 29.970 -an -f rawvideo -y NUL && ffmpeg -ic:\\ temp \\ 175663.lbl.mp4.mps -vcodec mpeg4 -b:v 1300k -s 640x360 -aspect 16:9 -pass 2 -r 29.970 -acodec libmp3lame -ab 128k -ar 48000 c:\\ temp \\ encoded \\ 175663.NTP .mp4

我在ffmpeg.exe目錄中獲得了一個日志文件。 我認為這是一個有效的好日志。 我還獲得了有效的mp4文件。 但是,我不知道該日志文件是否實際在pass2上使用。 如果我僅在cmd窗口中單獨運行第二遍(&&之后的所有內容)。 我得到一個有效的mp4文件。 為什么沒有錯誤? 這使我懷疑第二遍完全沒有使用原始的遍。

其次,如何以編程方式刪除pass1的日志? 有沒有我可以鍵入的命名約定? 最終,該應用程序將在同一台/其他計算機上的多個線程上運行。 因此,我不能完全從ffmpeg文件夾中刪除* .log。 創建文件時,有沒有一種命名文件的方法?

最后,我似乎無法使用上述參數在C#中啟動新過程。 如果我省略ffmpeg(因為該進程正在啟動ffmpeg本身),則會在&&上出現錯誤。 我不喜歡嘗試兩次通過。 如果一次執行一次通行證,那么我什至沒有日志文件可以嘗試在第二次通行證上使用。

任何信息都將是驚人的。 謝謝您的寶貴時間!

首先,如果您詢問有關ffmpeg的正確cmdline開關,那么對於StackOverflow來說這可能不是一個適當的問題,它屬於SuperUser。

其次,是的,在第二遍使用日志。 日志的作用是保持每個幀中的比特率要求,因此,如果您指定目標比特率(使用-b:v完成),則可以更好地利用總帶寬。 附帶說明一下,如果您使用的是恆定量化器(也稱為“恆定質量”),則不會使用它,但是使用恆定量化器則不需要多次編碼。

您應該能夠將cmdline作為兩個進程來啟動,一個接一個地啟動,日志文件的創建應該沒有差異。 如果是這樣,請確保已正確設置進程的當前目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM