IP camera Techage TA-XM-608GP-AI-30 (3MP)
- Full AliExpress name: Techage H.265 3MP Two Way Audio POE IP Camera IP66 Waterproof Outdoor Video CCTV Security Surveillance Camera for POE NVR System
- Bought on AliExpress, at the time for $35 (shipped from EU warehouse)
- Power: either 12 V DC, or 48V PoE
- Administration: requires Internet Explorer + ActiveX plugin
Resolution: on the sticker 3MP, but within the settings the highest resolution is actually 4MP at
2560x1440(so something like 3.6 megapixels, also called 1440p or QHD)
- Framerate: 1-25 fps (can be adjusted)
- This camera can do both H264 and H265 (HEVC) stream. When the codec is set to H.265X, the stream is actually x264 (and H265 is actual x265).
- The stream carries wrong aspect ratio metadata (should be 16:9, but it's actually 64:27). See
ffprobeoutput bellow. Can be fixed without re-encoding, but it's annoying.
- There is some (2-way) speaker that was always buzzing. I cut it off. NOTE: Other Techage camera was the same way, but only when powered on by 12 V. When powered over ethernet (POE) it was quited. So POE is preffered way of powering.
- Default IP is
192.168.1.10with DHCP disabled.
RTSP stream URL for ZoneMinder or VLC:
# In-camera setting: "H.265X" + "4MP" Video: h264 (High), yuvj420p(pc, progressive), 2560x1440 [SAR 4:3 DAR 64:27], 25 fps, 10 tbr, 90k tbn # In-camera setting:"H.265" + "4MP" Video: hevc (Main), yuvj420p(pc), 2560x1440 [SAR 4:3 DAR 64:27], 25 fps, 10 tbr, 90k tbn # In-camera setting: "H.265X" + "3MP" Video: h264 (High), yuvj420p(pc, progressive), 2304x1296 [SAR 4:3 DAR 64:27], 25 fps, 10 tbr, 90k tbn
Fixing the wrong aspect ratio without re-encoding
With ZoneMinder's pass-through recording, for some reason my camera's raw footage is saved with a 64:27 aspect ratio. This means that it is a bit more noodly than it should be. This is fairly easy to fix with ffmpeg:
ffmpeg -i in.mp4 -aspect 16:9 -c copy out.mp4
Since I couldn't get ZoneMinder to force this parameter (
-aspect 16:9) directly this as it saves the stream, I use this quick and dirty solution that runs via crontab every hour or so and fixes the recordings for me:
#!/bin/bash # FIND ALL MP4 in /CCTV/1 OLDER THAN 60 MIN BUT YOUNGER THAN 4 HOURS (ASSUMING SCRIPT WILL RUN EVERY UNDE 4 HRS) # CHECK WITH FFPROBE WHETHER THE FILE HAS BEEN FIXED YET # IF NOT, FFMPEG WITH proper AR CCTVDIR=/cctv/1 while IFS= read -r input; do ffprobe "$input" &>/tmp/ffprobe-techage.txt filecheck=$(cat /tmp/ffprobe-techage.txt | grep Stream | grep 16:9) if [ -z "$filecheck" ]; then echo "Recording "$input" needs to be fixed. Proceeding..." oldname=$(basename "$input") fixedname=fixed-$(basename "$input") directory=$(dirname $input) ffmpeg -i "$directory"/"$oldname" -aspect 16:9 -c copy "$directory"/"$fixedname" </dev/null mv "$directory"/"$oldname" "$directory"/"$oldname".old mv "$directory"/"$fixedname" "$directory"/"$oldname" rm "$directory"/"$oldname".old else echo "Recording "$input" has been fixed already. Skipping..." fi rm /tmp/ffprobe-techage.txt done < <(/usr/bin/find $CCTVDIR -name '*-video.mp4' -mmin +15 -mmin -1440 -type f)
Will add at some point. Overall very nice image for $35.