在 PyAV 中指定執行緒數目可以透過設定 threads 屬性來實現。該屬性通常應用於 demuxer、decoder、filter 和 encoder。例如,下面的程式碼將在 demuxer 和 decoder 中使用 4 個執行緒:
import av
container = av.open('video.mp4')
container.streams.video[0].thread_type = 'AUTO'
container.streams.video[0].threads = 4
for packet in container.demux():
for frame in packet.decode():
# 處理每一幀
在這個例子中,我們使用 av.open() 開啟影片檔案,然後設定第一個影片流的 thread_type 為 AUTO。AUTO 意味著 PyAV 將根據需要自動建立和銷燬執行緒。接下來,我們將 threads 屬性設定為 4,以指定在 demuxer 和 decoder 中使用的執行緒數。最後,我們遍歷 container.demux() 的輸出,以獲取影片幀。
如果您使用的是 filter 或 encoder,請將相應的執行緒屬性設定為 filter.thread_type 和 filter.threads 或 encoder.thread_type 和 encoder.threads。