Help: Video Track Not Exported Using Hardware Encoder

Hi,

I am trying to edit a video recorded on a smartphone @ 1080x2400 resolution.

Steps followed:

  1. Imported video and converted it to fixed frame rate.
  2. Imported fixed frame rate video (I created a new project for this as I had deleted the old one).
  3. Exported audio only.
  4. Edited the audio in Audacity to reduce noise and exported the noise reduced audio.
  5. Created a new project in Shotcut and opened the converted fixed frame rate video from step 2.
  6. Added the same to playlist and timeline.
  7. Detached audio from the fixed frame rate video and deleted the audio track.
  8. Opened the noise reduced audio and added the same to playlist.
  9. Created a new audio track in timeline and added the noise reduced audio to this track.
  10. The timeline plays correctly inside Shotcut. Both audio and video are present.
  11. Clipped both the tracks to 10 sec length (for testing).
  12. Exported the timeline using H.264 High Profile (no advanced changes).
  13. The final mp4 file does not contain the video track. Only the single audio source is present. Checked using vlc. Only shows one audio stream.

I also tested using different export presets like Youtube and H.264 Main Profile.
However the issue remains the same. There is no video in the export file.

I suspect I have made a mistake with some setting but I am unable to figure it out.

Details:
OS: Windows 10
CPU: AMD FX 6300
RAM: 8 GB DDR3
GPU: AMD Radeon R9 270X

Shotcut version: 21.03.21 (zip version - not installed)

Edit:
I had checked the “Use Hardware Encoder” checkbox and it was autodetected as h264_amf.

After unchecking this setting and exporting the clip, I got the video stream as well.
Unfortunately I cannot edit a longer video without hardware encoder as the CPU gets too hot.
Is there any setting that would allow me to use the hardware encoder?

I had a somewhat similar experience; in my case, it was a typical 1920 x 1080 HD video, but I had to chop it up into several million little pieces during the editing. When I exported with hardware encoder, I got audio only. When I turned off HW encoder, I got the full video. In my case, the HW encoder is an NVidia GPU.

But this was an anomaly - normally HW encoding works just fine for everything I do. I am thinking it was just such a complicated edit that it overwhelmed the HW encoder.

Note that, unless you are overclocking / otherwise hacking the hardware on your computer, it should not be possible for the CPU to get too hot; the system should slow down the clock or otherwise shut things down when the CPU temperature reaches its highest acceptable temperature. But the “highest acceptable temperature” is going to be way hotter than is comfortable to hold!

All of that to say, you may be able to use the HW encoder most of the time, and when you can’t, just be prepared to deal with some heat. Don’t forget that the GPU may get quite hot as well.

Were you able to export using hardware encoding before this project? If you just cut a short (10s) portion of your clip and export it (no other changes, in a new project) does it work?

I agree with a previous comment: if your CPU malfunctions when using software encoding, then you have a hardware problem. Modern processors have frequency throttling features to ensure that a CPU does not ever overheat.

Hardware encoding is a convenience feature to speed up export for people whose systems are compatible. It does not work for everyone.

If your export is missing the video track using hardware encoding, you might be able to find a clue by right clicking on the finished job and viewing the job log. You can post the log to this forum and other people can inspect it.

You can also read other posts from people who have had similar problems:
https://forum.shotcut.org/search?q=hardware%20encode%20no%20video

Thank you all for your replies.
As I’m new to video editing, I really appreciate all the help.

@awake:
Thanks. I also think that this may be an anomaly.

I checked my GPU specs and AMD R9 270X supports AVC as the video encoding type.

Also, my original project was more than 1 Hour 40 Mins video @ 1080x2400 resolution.
However, my project did not include any complicated edit.

All I did was take the video, convert it to constant frame rate and use that as Track 1.
Then I detached the audio from Track 1 and deleted that. So I was not using the Mute filter.
I also exported the audio from the converted video, processed it for Noise Reduction in Audacity and used that as Track 2.

There were a few cuts in both the tracks from where part of the clips were removed (deleted).
However, there were no filters or text overlays etc.

I expected the final video to have both the video (with audio removed) from Track 1 and Noise Reduced audio from Track 2.
However, with the Hardware Encoder enabled, all I got was a mp4 file with just the audio. There was no video.

I did a test with a 10 second clip of the source video (in a new project).
I was able to render that correctly without using Hardware Encoder (and without overheating the CPU).
However, it would not be feasible to render large projects by splitting into 10 second clips.

@daniel47:
I did export the entire project with Hardware Encoder enabled.
The resulting output file contained only audio. There was no video.
I tried this multiple times at different export settings.
However, the result was the same.

Then I decided to test using a 10 second clip without any other cuts in between.
(Because the entire project was taking about 1 Hour with Hardware Encoding enabled.)
The result was the same for the 10 second clip. No video in the output file when using Hardware Encoder.

Then I exported the 10 second clip without using the Hardware Encoder.
This resulted in a file with both audio and video.

@brian:
My CPU did not malfunction. All it did was overheat.
I say overheat because AMD software started showing a popup warning indicating that the CPU temp was 65 degrees Celsius.
Normally my CPU stays in low to mid 40 degrees Celsius.

I do not alter my CPU settings or any other hardware settings for that matter.
My hardware runs at stock clock speeds and voltages. I do not overclock.

The system did not even shutdown on it’s own.
But I did stop the job because I did not want to run the CPU at sustained warning temps.
I feared that sustained usage at this temperature might damage my PC.

I was also able to use Shotcut with Hardware Encoding enabled for the entire project earlier.
During this time, the CPU temps did reach about 62 degrees Celsius but did not hit the warning threshold.

However, when I attempted to render the project without Hardware Encoding enabled, the CPU reached warning temperature at about 1% job progress.

Therefore I cannot use Hardware Encoder because of the following 2 reasons:

  1. It takes too long to render.
  2. The CPU reaches warning temperature of 65 degrees Celsius.

Thanks for the tip about the job logs.
I will post logs next time I try to render a video.
For now, I deleted the project files as I assume that my PC is not powerful enough for video editing.
(The project was more for learning and not really critical.)

Also I did search the forum for similar issues and came across the following:

However, in that topic, the problem is different as the hardware does not have an encoder chip.
On the other hand, my graphics card supports AVC hardware encoding.

abhitemp9, thanks for the thorough and thoughtful response! Sometimes the OP doesn’t respond to comments or suggestions, and it leaves the feedback “hanging” without resolution … or the OP comes back swinging, ready for a fight. Unlike either of those scenarios, you are a gentleman and a scholar! :slight_smile:

For your video, I was thinking of the complexity not so much in terms of cuts and edits, but in terms of the length and the relatively unusual resolution. I think I have read somewhere that GPUs are optimized for the common resolutions such as 1080 x 1920; if that is correct, I can imagine that something else makes it have to do a lot of extra buffering. Or something like that … ?

Thanks @awake

The issue might very well have to do with the non-standard resolution.
The video was shot using a Samsung smartphone with zoom at full resolution.

I did a test render using a 10 second clip of the same video with both Hardware Encoding enabled and disabled.
With Hardware Encoding enabled, the rendering took merely 7 seconds for the 10 second clip, and about 1 hour for the entire project.
However the results were the same. With Hardware Encoding enabled, the output file did not contain any video stream.

I’m not sure how to check if this issue could be related to buffering.
As mentioned by @brian, perhaps the job logs might reveal something.
But I do not have the original video or project files anymore.

I might try running Shotcut inside a VM with limited CPU allocation, perhaps on a Linux guest OS.
Hopefully this might prevent my CPU from reaching warning temperature.

To the Mods:

I don’t have anything more to contribute at this time.
Also I’m not sure if I can mark any response as a solution.
Therefore, please consider closing this topic as per your convenience.

This topic was automatically closed after 90 days. New replies are no longer allowed.