I ended up following this advice, which worked quite well. I was even able to squeeze this procedure into a single command as follows:
samtools sort -no <(samtools view -bh -f 2 -F 1792 -q 1 mybamfile.bam 20) tmp \
| bamToBed -i stdin -bedpe \
| cut -f 1,2,6 \
| sort -k 1,1 \
| bedtools genomecov \
-i stdin \
-g <(echo -e "20\t59505520\n") \
| grep ^20 \
> coverage.txt
This command first sorts the input BAM file by read names, converts properly mapped, unique, and non-duplicate read pairs to BED intervals using bamToBed, cut the relevant three columns (chromosome, start coordinate, end coordinate), sort the BED intervals by chromosome name, feed this into 'bedtools genomecov' and grep the results. Note that this solution operates only on one chromosome (chr 20 in this case), as this reduces required computation time considerably and the results should be similar to genome-wide values. As chromosome size I specified the assembly size of chromosome 20 without gaps ('N's), as one cannot have coverage in unassembled regions. The output of 'bedtools genomecov' can then be visualized to produce something like shown below.