pyav 指定執行緒數目

ponponon發表於2023-03-16

在 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。

相關文章