使用 avconv 輸出 pal8 rawvideo

使用 avconv 輸出 pal8 rawvideo

我正在嘗試使用 avconv 降低一些原始視頻的分辨率。輸出必須保持相同的原始視訊格式,因為在稍後階段我需要將其加載到另一個程式中,該程式非常挑剔並且不會接受任何其他類型的輸入。現在,我嘗試做

avconv -i myvideo.avi -s 88x72 -vcodec rawvideo myvideo-small.avi

這樣可以產生縮小的視頻,但格式似乎不完全相同。 avconv 表示讀取的輸入是

Stream #0.0: Video: rawvideo, pal8, 352x288, 30 fps, 30 tbr, 30 tbn

而產生的輸出是

Stream #0.0: Video: rawvideo, yuv420p, 88x72, q=2-31, 200 kb/s, 30 tbn, 30 tbc

儘管兩者都是 rawvideo,輸入是“pal8”,輸出是“yuv420p”。我不知道這兩種格式之間的差異,但我需要輸出保留與輸入完全相同的格式。如何才能做到這一點?

答案1

在我看來,avconv目前僅支援 pal8 輸入。要檢查您是否可以運行:

$ avconv -pix_fmts |grep pal8

我的輸出是:

avconv version v12_dev0-498-g2e09359, Copyright (c) 2000-2014 the Libav developers
  built on Dec  5 2014 09:32:02 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
I..P. pal8                   1             8

第一部分的圖例是:

I.... = Supported Input  format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format
...P. = Paletted format
....B = Bitstream format

所以pal8可以讀,但不能寫。這意味著您無法主動將任何流編碼為這種格式,如果您打算更改幀的大小,則需要執行此操作。

如果您發現 pal8 之外您的「挑剔」軟體可接受的另一種像素格式並且可以使用 進行編碼avconv,您可以使用以下選項選擇該特定格式-pix_fmt

avconv -i in.avi -s 88x72 -pix_fmt FORMAT -c:v rawvideo out.avi

相關內容