我有一個問題,那就是當用pyglet播放視頻時,顯然不能正確處理流的開始和結束。播放器會忽略第一個關鍵幀,然後顯示毛刺圖像,直到找到第二個關鍵幀。同樣,on_eos事件不是火,而是python崩潰,因爲它顯然試圖加載更多的幀。pyglet/avbin錯過了視頻的開頭和結尾
import pyglet
vidPath = "test.mp4"
window = pyglet.window.Window()
player = pyglet.media.Player()
source = pyglet.media.load(vidPath)
player.queue(source)
player.play()
@player.event
def on_eos():
print('video end')
@window.event
def on_draw():
window.clear()
if player.source and player.source.video_format:
player.get_texture().blit(0, 0)
pyglet.app.run()
我在OSX 10.11.3上使用Python 3.4.3,pyglet 1.2.4和AVbin 10。
試圖在Ubuntu相同的代碼和視頻,我得到了同樣的問題,並在啓動時出現以下錯誤:
Non-reference picture received and no reference available
[h264 @ 0x3386700] decode_slice_header error
Non-reference picture received and no reference available
[h264 @ 0x33880e0] decode_slice_header error
Non-reference picture received and no reference available
[h264 @ 0x3388520] decode_slice_header error
[h264 @ 0x3388a80] illegal short term buffer state detected
Non-reference picture received and no reference available
[h264 @ 0x3388a80] decode_slice_header error
[h264 @ 0x338c2e0] reference picture missing during reorder
[h264 @ 0x338c2e0] reference picture missing during reorder
[h264 @ 0x338c2e0] reference picture missing during reorder
這些視頻一旦達到了目的:
[h264 @ 0x23bde00] no frame!
[h264 @ 0x23bf7e0] AVC: nal size 0
[h264 @ 0x23bf7e0] AVC: nal size 0
[h264 @ 0x23bf7e0] no frame!
[h264 @ 0x23bfc20] AVC: nal size 0
[h264 @ 0x23bfc20] AVC: nal size 0
任何想法這裏有什麼問題?我有一些視頻可以正確啓動,但最終無法識別。
所以你試過不同的視頻文件?他們是哪種格式? '.mkv'? – Torxed