Seting 0 values in GeoTIFF to nodata using GDAL?
You could try something like this with gdal_translate
gdal_translate -of GTiff -a_nodata 0 input.tif output.tif
with gdal:
gdalbuildvrt -of GTIFF -srcnodata 0 input.tif myVrt.vrt
gdal_translate -of GTIFF -scale -a_nodata 0 myVrt.vrt output.tif
beside this you can use raster calculator plugin or grass in qgis too. and arcpy SetNull method.