This commit is contained in:
2025-10-04 14:22:39 +02:00
parent 7e14afcb84
commit e0124c0ff3

31
pve.py
View File

@ -14,6 +14,8 @@
# You should have received a copy of the GNU General Public License along with People's Video Editor. # You should have received a copy of the GNU General Public License along with People's Video Editor.
# If not, see <https://www.gnu.org/licenses/>. # If not, see <https://www.gnu.org/licenses/>.
import cProfile
from pyav.demuxer import Demuxer from pyav.demuxer import Demuxer
from pyav.decoder import Decoder from pyav.decoder import Decoder
@ -26,14 +28,21 @@ print(f"audio codec = {demuxer.audio_stream.codec.name}")
video_decoder = Decoder(demuxer.video_stream) video_decoder = Decoder(demuxer.video_stream)
audio_decoder = Decoder(demuxer.audio_stream) audio_decoder = Decoder(demuxer.audio_stream)
while True: num_frames = 0
packet = demuxer.read_packet()
eof = (packet is None) with cProfile.Profile() as pr:
if eof or demuxer.video_stream.contains(packet): while True:
video_frames = video_decoder.decode(packet) packet = demuxer.read_packet()
print(f"decoded {len(video_frames)} video frames") eof = (packet is None)
if eof or demuxer.audio_stream.contains(packet): if eof or demuxer.video_stream.contains(packet):
audio_frames = audio_decoder.decode(packet) video_frames = video_decoder.decode(packet)
print(f"decoded {len(audio_frames)} audio frames") num_frames += len(video_frames)
if eof: # print(f"decoded {len(video_frames)} video frames")
break if eof or demuxer.audio_stream.contains(packet):
audio_frames = audio_decoder.decode(packet)
# print(f"decoded {len(audio_frames)} audio frames")
if eof:
break
print(f"num frames: {num_frames}")
pr.print_stats()