在回報錯誤之前,請先考慮以下事項
FFmpeg 處於持續開發的狀態。
因此,如果您希望查詢或回報錯誤,您必須使用 FFmpeg 的最新開發分支版本來確認問題是否仍然存在。
當撰寫您的錯誤回報時,請包含(未壓縮的)
- 您嘗試完成的事情(例如:「我嘗試將這個格式轉碼成那個格式...」)
- 您遇到的問題(例如:「ffmpeg 崩潰了,請參閱下方的 gdb 和 valgrind 輸出」或「輸出的影片全是綠色的」)
- 您使用的確切命令列(例如:「
ffmpeg -i input.mov -an -vcodec foo output.avi
」)
- 完整的、未經剪輯的控制台輸出,由
ffmpeg -v 9 -loglevel 99 -i
後接您的輸入檔名提供(從控制台複製/貼上,包含顯示版本和配置選項的橫幅),只有當您的問題無法用 ffmpeg 重現時,才貼上 ffplay 或 ffprobe 的輸出。
- 足夠的資訊,包含任何需要的輸入檔案,以重現錯誤並確認潛在的修復。
您可以使用 -report
選項或定義 FFREPORT
環境變數(為任何值),以在目前目錄中名為 ffmpeg-*.log
的檔案中取得確切的命令列和完整的詳細控制台輸出。
如果您遇到崩潰錯誤,請提供
gdb
輸出、回溯和反組譯碼,如果可能的話,請使用
ffmpeg_g
除錯二進制檔案,並提供
valgrind
輸出。
對於 gdb
,請按照以下步驟操作
gdb ffmpeg_g
在 gdb
中,輸入 'r' 以執行,以及其餘的 ffmpeg
命令列
r <rest of command line>
或者,您可以執行 gdb --args ffmpeg_g <其餘命令列>
,然後在 gdb
提示字元中輸入 'r' 即可。
當 gdb
遇到問題時,執行以下命令並將輸出複製/貼上到您的錯誤回報中
bt
disass $pc-32,$pc+32
info all-registers
對於較舊的 gdb
版本,請使用 disass $pc-32 $pc+32
。
對於 valgrind
,執行以下命令並將輸出複製/貼上到您的錯誤回報中
valgrind ffmpeg_g <rest of command line>
如果您遇到回歸錯誤,請使用 git bisect
找出導致回歸的版本。取得此資訊可以大大加速錯誤修正。
錯誤追蹤器
一旦您收集到這些資訊,您就可以將回報提交到 FFmpeg 錯誤追蹤器。
請注意,您必須先在 註冊,才能提交回報。
您應該提供所有資訊,以便任何人都能重現該錯誤。
請不要在開發者郵件列表中回報您的問題
只有當您也打算提供修復程式時,才將錯誤回報發送到那裡。
開發者可能會要求您提供範例媒體檔案來說明您的問題。在這種情況下,請按照以下步驟操作
- 如果範例檔案太大( > 10 百萬位元組),請使用 Unix 'dd' 命令將其縮小尺寸
dd if=sample-file of=small-sample-file bs=1024 count=10000
然後上傳 small-sample-file 而不是 sample-file
- 請選擇描述性的名稱,例如
h264_green_tint.mov
或 block_artifacts_after_seeking.mkv
。我們已經有很多 bug.rm
和 sample.avi
了。
- 使用 VideoLAN 檔案上傳器上傳範例。
- 前往 streams.videolan.org/upload/
- 選擇 FFmpeg 專案。
- 在 VLC 版本欄位中填寫 FFmpeg 版本。
- 如果票證存在,請將相應的 Trac 票證號碼填寫在 GitLab 票證欄位中。
- 簡要描述範例以及錯誤之處。
- 上傳範例。請注意,檔案大小限制為 1024MB,超過該限制的檔案將被丟棄。
- 寄送電子郵件至 ffmpeg 郵件列表,並指出範例的檔案名稱。
已壓縮的影片檔案(rar,7z,gzip,...)將被刪除,且不會經過檢查,除非它們是原始 RGB/YUV/PCM。
此外,上傳到像 rapidshare 或任何其他類似服務的影片檔案將被忽略。我們不願意花時間與這種荒謬、臃腫且充斥垃圾郵件的垃圾奮鬥。
由 telepoint.bg 提供託管服務