====== Using ffprobe to verify stream ====== Jun 2017 \\ \\ ---- Using netstat and ip, we can see what multicasts are present on an interface, we can use iperf to join that multicast, and tcpdump to record it. \\ \\ Another tool we can use is ffprobe, which is part of ffmpeg. ffprobe allows us to analyse the stream to verify it is what we expect (the correct resolution, codec, audio etc). \\ \\ ==== Installation ==== Before we can use ffprobe we will have to install ffmpeg. However, to do this we will have to also add the ATRPMS repository to CentOS. \\ \\ ==== Adding ATRPMS Repository ==== ATRPMS is a 3’rd party rpm repository providing up to date packages for Red Hat based systems. We can used it for directly downloading packages or we can use one of the available package manager tools. \\ \\ To enable atrpms yum repository first login to system using root access. Now import ATrpms signing key for verifying packages using following command. \\ rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms \\ Now create repository file with .repo extension under /etc/yum.repos.d/ directory and add following content as per your operating system. \\ \\ All the users of RHEL, CentOS and Scientific Linux with all other derived distributions. Create a atrpms.repo file in /etc/yum.repos.d directory and add following content. \\ vi /etc/yum.repos.d/atrpms.repo [atrpms] name=Fedora Core $releasever - $basearch - ATrpms baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms enabled=1 gpgcheck=1 \\ Save the file and exit. (https://tecadmin.net/setup-atrpms-repository-on-centos-redhat-and-fedora/) \\ \\ ==== Install FFMPEG ==== ffprobe is part of ffmpeg, so we need to install ffmpeg to get this tool. \\ yum install ffmpeg \\ Some basic ffmpeg commands \\ ffmpeg -version: show version ffmpeg -formats: show available formats ffmpeg -codecs: show available codecs ffmpeg -decoders: show available decoders ffmpeg -encoders: show available encoders ffmpeg -bsfs: show available bit stream filters ffmpeg -protocols: show available protocols ffmpeg -filters: show available filters ffmpeg -pix_fmts: show available pixel formats ffmpeg -layouts: show standard channel layouts ffmpeg -sample_fmts: show available audio sample formats \\ Now the installation is done we can do a test (https://tecadmin.net/install-ffmpeg-on-centos/#) \\ \\ ==== Using FFPROBE ==== We are going to join a stream to read the stream characteristics, use the following syntax. \\ ffprobe udp://239.0.200.1:10001 \\ If you successfully join the stream you will get an output similar to the following example. \\ Input #0, mpegts, from 'udp://239.0.200.1:10001': Duration: N/A, start: 5793.912200, bitrate: 128 kb/s Program 1 Metadata: service_name : VSPP ABR Test service_provider: Ericsson Stream #0:0[0x3e9]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 tbr, 90k tbn, 180k tbc Stream #0:1[0x7d1]: Audio: aac ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 128 kb/s \\ When you start ffprobe, you will likely see some errors, I am not sure what this is, but it could be errors that are generated until the first I frame is found. \\ \\