![]() ![]() Opus is a high-performance format for audio, which has a better sound quality and lower bitrate requirements than MP3, OGG or AAC. Libopus is an audio encoding engine for the OPUS codec. The option -c: a is used to select the audio codec. I choose 22 because using the value 28 gives me unpleasant artifact. The recommended value for this is actually 28. Lower value means higher video quality at the expense of increased space requirements. the -q:v is used to select the target video quality. In this case, we choose the x265 library provided by FFMPEG. The option -c:v is used to select the video codec. I use FFMPEG version 4.0.2 to encode the file is 30 minutes long, with the following settings: ffmpeg -i input.mkv -c:v libx265 -q:v 22 -c:a libopus output.mkv However, if you increase the core size, the number of minimum memory size that you can pick is also increasing. You might ask, this might not be a valid test because I use different memory size. The table below shows the exact machine configuration that I use for encoding: Core Size The machine region is Europe-west4-a I perform the experiment using various core size. ![]() I opt for the spot instance because it’s cheaper than the on-demand instance and suitable for batch processing such as this one. I choose to use the high CPU machine type to perform the experiment because H265 encoding is CPU-bounded process. Experiment Setupįirst, let’s decide which type of virtual machine that we can choose in Google Cloud Engine. Regardless, I am just curious whether Google Cloud Engine can give me good speed encoding H264 file to H265. For most people, their internet upload speed might make this solution already impractical even before we test it. Therefore, why don’t we use google cloud engine for doing the encoding? After all, we can select a virtual machine with a powerful CPU. I am stingy though, I can’t justify the money to buy a new GPU.įortunately, I heard that Google gives us free credit (300 Euro) for testing their service. Another option might be to buy GPU with the newer, better, faster chipset. 220MB might be not much, but if we have a lot of files, that will pile up quickly. When I tried to encode a 1 GB file, I got an 80MB file from CPU encoding and 300MB from Intel QuickSync. The problem is, GPU based encoding tends to produce lower quality images and bigger file size. I got 2x speed up by using Intel encoding solution, Intel QuickSync. Surely there is a better solution, right? For example by leveraging GPU capabilities. That means it will take one day to convert everything! I have 24, 30 minutes long files that I want to convert. For example, in 1-hour long movie, it will take 2 hours to encode one file. On my laptop, with Intel core I7 6500U with 2 cores, 4 thread and 8 gigabytes of memory, It takes twice the time of the movies to encode. Good news right? Yeah right, The hard pill is that we are trading space for computing complexity. However, I found out that we can save more than 70% of the space with the same quality by converting those file to H265. A 30 minutes movies took almost 1GB of storage. If you want to make use of QuickSync there are some additional integration steps required.Have you ever want to try the ludicrous power of 24 CPU cores? I sure have! In this post, I am experimenting with Google cloud engine to transcode H264 files to H265. This is especially useful when testing with our test app or your own integration of our plugin inside your app. This way all your users will be able to receive the notifications almost immediately. We have improved this by our new QuickSync mechanism, it is based of Google Cloud Messaging and sends newly created or updated notifications by push to all users’ devices. If you would change something in our dashboard, for instance, creating a new notification, it would take some time until all your users’ devices would receive the notification, since they would need to sync with our server. Lets first explain how our current synchronisation works every so often our integrated Plot Plugin checks if it is in sync with our server and updates its notifications, geofences, etcetera accordingly. ![]() It delivers notifications to your devices faster than our old method, making testing newly created notifications and geotriggers easier. With our newest release of our Plot Plugin (version 1.13.0-beta) we now offer QuickSync! This is a new way to synchronize your notifications between our server (the dashboard) and your devices. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |