I'm streaming H.264(libx264) videos using RTP. I would like to compare the different error resiliency methods in h.264. In some research papers, psnr was used to compare them. So I would like to know how to calculate the psnr of the h.264 video during streaming.
Related Questions in H.264
- Android mediacodec avc/h264 encoder always produces 1MB output buffer size
- Video Emulation solution
- Exoplayer does not play h264 mpeg-4 avc (part 10) codec in Android
- Client side H.264 (MP4) video compression/encoding
- Gstreamer Serial communication between 2 devices
- Decode h264 frame using android hardware accelerated decoder in gstreamer
- FFMPEG C Library: Encoding h264 stream into Matroska .mkv container creates corrupt files
- Adding h264 frames to mp4 file
- H264 data changing after serial communication in Python
- Extend Frame Size and Re-Encoding Video to be Blu-Ray Compliant with ffmpeg and tsMuxer
- Is there min size of IMFSample when ProcessInput?
- RTSP server on live555 start send client on I-Frame (h264)
- Python Handling H264 Frames for Live Stream from Eufy Server
- MediaCodec Async mode with NDK not triggering callback functions
- GstAppSink: Sharing between two pipelines
Related Questions in X264
- How to create IDR I-slice frame for H264 bytestream?
- Why is a file unplayable in Windows Media Player?
- Encode NV12 frames to h264 using x264enc (appsrc and appsink)
- First/single frame encoded with ffmpeg/libavcodec library cannot be immediately decoded
- building ffmpeg for windows x264.h: No such file or directory
- Gstreamer convert and display video v4l2 - tee problems in rust
- How to fix the "No working C compiler found." problem for compiling x264 in Linux?
- x264 lib fails to build on Android, other plugins not included
- ffmpeg convert from H.264 (High 4:4:4 Profile) to H.265 (Main Profile)
- How is the FFMPEG x264 result bitrate calculated?
- x264: How to Correctly Use quant_offsets?
- How to encode an mp4 to the exact specs of another mp4 with FFMPEG
- build x264 failed on apple M1, No working C compiler found
- FFmpeg libxh264 error on Slackware current
- x264/x265 options for fast decoding while preserving quality
Related Questions in PACKET-LOSS
- eBPF TC Program for IPv6 Outgoing Packets Drops Packets with MSS > 1424 and MTU 1500 When Adding Extension Header
- MQTT QoS 1 Ordering
- Python specific packet loss using UDP
- How to get PacketLoss(%), throughput, E2E delay statistics in OMNET++?
- NetMQ PGM dropping packets client-side
- Does vp9 handle packet loss or I have to handle manually?
- Which TCP Congestion Control Algorighms are supported (and used) by OkHttp?
- Discord.js Packet Loss
- TCP Packet loss after Azure load balancer
- Packet Lost using UART Driver of Telit's LE910Cx MCU
- ffmpeg dropping packets from rtp stream without warning message
- How can I get packet loss information from python mininet pings?
- Does TCP still send new packet after packet loss is detected
- discord.js - bot losing packets in Voice Channel at constant rate
- Slow packet transfer rate iOS BLE
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
To calculate PSNR, you must compare two frames, so first step is to make sure you have a copy of the source video. Next, you must be able to match the frames 1:1. so if a frame is droped, you need to compare the source frame to the previous streamed frame. This may be difficult if the timestamps do not match (They may be modified by the RTP server). Next decode each frame into its YUV channels. the PSNR of the channels needs to be calculated independently. You can average the three PSNR values at the end, but this puts too much weight on the U,V channels. I recommend just using the Y channel, as it is most important. And since you are measuring packet loss, the values will be strongly correlated anyway.
Next calculate your mean squared error like so:
And finally:
You can average the per frame PSNRs together to get a full stream PSNR.