eulerian-remote-heartrate-detection icon indicating copy to clipboard operation
eulerian-remote-heartrate-detection copied to clipboard

Different format of video will get different result?

Open sjz123321 opened this issue 4 years ago • 2 comments

I used ffmpeg to convert the video format from .mkv to .avi .mp4 .mov Three types of videos got different results. And it happened on another video too. So I modified the heartrate.py

add : print("peak is: ",peak,"hight is: ",fft_maximums[peak],"In this case HR is: ",freqs[peak]*60)

video.mp4 peak is: 12 hight is: 2.968162773664705 In this case HR is: 71.70124481327802 peak is: 14 hight is: 2.600039322516675 In this case HR is: 83.65145228215769

video.avi peak is: 10 hight is: 3.3830124388984726 In this case HR is: 60.0 peak is: 14 hight is: 2.704215718114888 In this case HR is: 84.00000000000001 peak is: 16 hight is: 2.337397877666178 In this case HR is: 96.0

video.mov peak is: 12 hight is: 2.968162773664705 In this case HR is: 71.70124481327802 peak is: 14 hight is: 2.600039322516675 In this case HR is: 83.65145228215769

same as video.mp4

It seemed mp4 mov format is a good choice.

but when I use mp4 file (record by my mobile phone) error occurred

Traceback (most recent call last): File "C:\Users\94047\Desktop\eulerian-remote-heartrate-detection-master\main.py", line 39, in print("Heart rate: ", heart_rate, "bpm")

sjz123321 avatar Jun 14 '20 11:06 sjz123321

I used ffmpeg to convert the video format from .mkv to .avi .mp4 .mov Three types of videos got different results. And it happened on another video too. So I modified the heartrate.py

add : print("peak is: ",peak,"hight is: ",fft_maximums[peak],"In this case HR is: ",freqs[peak]*60)

video.mp4 peak is: 12 hight is: 2.968162773664705 In this case HR is: 71.70124481327802 peak is: 14 hight is: 2.600039322516675 In this case HR is: 83.65145228215769

video.avi peak is: 10 hight is: 3.3830124388984726 In this case HR is: 60.0 peak is: 14 hight is: 2.704215718114888 In this case HR is: 84.00000000000001 peak is: 16 hight is: 2.337397877666178 In this case HR is: 96.0

video.mov peak is: 12 hight is: 2.968162773664705 In this case HR is: 71.70124481327802 peak is: 14 hight is: 2.600039322516675 In this case HR is: 83.65145228215769

same as video.mp4

It seemed mp4 mov format is a good choice.

but when I use mp4 file (record by my mobile phone) error occurred

Traceback (most recent call last): File "C:\Users\94047\Desktop\eulerian-remote-heartrate-detection-master\main.py", line 39, in print("Heart rate: ", heart_rate, "bpm")

I went nuts figuring this out, it also happened to me, would you please tell me what did you do with peak detection to get the right heart rate? I used ffmpeg to prevent data loss, but when I load them, the FFT output is zero, but when I load the raw videos fft output is not zero, I would really appreciate any help or guidance.

aminrezaei-img avatar Mar 24 '22 15:03 aminrezaei-img

@aminrezaei-img I think it's because of different codec i use "mp4v" codec with opencv and it's work without any error ..

owais3901 avatar Feb 24 '23 11:02 owais3901