I don't know if you have expertise in NGS data analysis, so I will just briefly describe the steps of the pipeline you need to do. But feel free to ask details if you need.
You can detect mutations (SNV and indels) using the following steps:
1.You need to map the reads against reference genomes.
Since your viral and human reads are in the same file, you will need to separate these data from each other. To do this, you need to concatenate corresponding reference genomes (human+viral) and map your reads against this concatenated reference genome. Since viral and human genomes are (obviously) very different, you will separate human and viral reads. Suppose you did this step and obtained the bam files.
From here on you can do 2 things:
2a. As mentioned in the comments, if the viral genome is very small, you can use IGV software to visualize the bam files and basically manually inspect if there are any mutations in viral alignments. If you see that there are actually a lot of them or the viral genome is large and its not feasible to do manual checks, proceed with the next step.
2b. On these step you will need to call variants based on your bam files, using GATK software. It has a chapter of best practices when dealing with RNAseq data.
The easiest way would be to perform variant calling on the entire bam files, which will give you information about human variants as well. If you really need to do the analysis only of viral data, you will need to subset your bam files.
After applying GATK, you will get a VCF file, containing the variants.
NOTE: You have mentioned there are 30 mln reads per sample. With these sequencing depth you can "recover" highly and moderately expressed human genes, but lowly expressed genes probably would not get many reads. I don't know at which extent the viral genome is expressed, but after the step 1 just check how many reads mapped to viral genes. If the numbers will be very low, it wouldn't make much sense to continue the analysis.
Hope this helps