@Anonymous Thanks for reaching out.
I am not an expert with the JAVE2 or FFMPEG library but from storage and function perspective I can answer your question.
Regarding your first option, you are correct that the azure-storage-blob library does not expose any API to get a File object. However, you can still use JAVE2 or FFMPEG libraries to encode the video by passing the byte[] obtained from the BlobInputStream to these libraries. Both JAVE2 and FFMPEG libraries have APIs that accept byte[] as input and output byte[] as well. Once you have the encoded byte[], you can create an InputStream from it and write it to the storage account container by calling upload(InputStream data) on BlobClient.
Regarding your second option, it is not possible to mount a storage account as a file system in Azure Functions. However, you can still use the first option to encode the video and write the encoded file to the storage account container.