nvenc support
This commit is contained in:
parent
40654c0581
commit
9751a5ee59
2 changed files with 22 additions and 6 deletions
|
@ -30,14 +30,17 @@ Helper for sharing video captured by NVidia Shadowplay in Discord.
|
||||||
"REG ADD 'HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\dsr' /f /v InstallLocation /t REG_SZ /d '%LOCALAPPDATA%\DSR'"
|
"REG ADD 'HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\dsr' /f /v InstallLocation /t REG_SZ /d '%LOCALAPPDATA%\DSR'"
|
||||||
```
|
```
|
||||||
|
|
||||||
If you have nitro, add `/nitro` flag when running DSR.
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
> - If you have Discord Nitro: add `/nitro` flag when running DSR.
|
||||||
|
> - If you have an NVidia GPU with NVenc: add `/nvenc` flag when running DSR.
|
||||||
|
|
||||||
## More info
|
## More info
|
||||||
|
|
||||||
- [x] KISS interface
|
- [x] KISS interface
|
||||||
- [x] Support drag&drop
|
- [x] Support drag&drop
|
||||||
- [x] Keep the video under 25mb (discord limitation)
|
- [x] Keep the video under 25mb (discord limitation)
|
||||||
|
- [x] NVenc support
|
||||||
- [x] If already under the limit, the file won't be compressed
|
- [x] If already under the limit, the file won't be compressed
|
||||||
- [x] Nitro suppport via `/nitro` flag
|
- [x] Nitro suppport via `/nitro` flag
|
||||||
- [x] Merge all audio files into one track, while keeping the original ones (keeping track's title too)
|
- [x] Merge all audio files into one track, while keeping the original ones (keeping track's title too)
|
||||||
|
|
23
src/main.ts
23
src/main.ts
|
@ -141,7 +141,7 @@ app.whenReady().then(() => {
|
||||||
nbTracks: number
|
nbTracks: number
|
||||||
) => {
|
) => {
|
||||||
const audioBitrate = 400; // keep some room
|
const audioBitrate = 400; // keep some room
|
||||||
const videoBitrate = bitrate - audioBitrate;
|
let videoBitrate = bitrate - audioBitrate;
|
||||||
|
|
||||||
const finalFile = getNewFilename(file, "Compressed - ");
|
const finalFile = getNewFilename(file, "Compressed - ");
|
||||||
|
|
||||||
|
@ -156,17 +156,30 @@ app.whenReady().then(() => {
|
||||||
})
|
})
|
||||||
.join(" ");
|
.join(" ");
|
||||||
|
|
||||||
|
let codec = "libx264";
|
||||||
|
let hwAcc = "";
|
||||||
|
|
||||||
|
const argv = process.argv;
|
||||||
|
if (argv.includes("/nvenc")) {
|
||||||
|
// Use NVenc
|
||||||
|
codec = "h264_nvenc";
|
||||||
|
hwAcc = "-hwaccel cuda";
|
||||||
|
|
||||||
|
// Increase video bitrate
|
||||||
|
videoBitrate = Math.floor(videoBitrate * 1.85);
|
||||||
|
}
|
||||||
|
|
||||||
// Compress the video
|
// Compress the video
|
||||||
// Add metadata to audio's track
|
// Add metadata to audio's track
|
||||||
await execute(
|
await execute(
|
||||||
`"${ffmpegPath}" -y \
|
`"${ffmpegPath}" -y ${hwAcc} \
|
||||||
-i "${file}" \
|
-i "${file}" \
|
||||||
-c:v libx264 -b:v ${videoBitrate}k -pass 1 -an -f mp4 \
|
-c:v ${codec} -b:v ${videoBitrate}k -pass 1 -an -f mp4 \
|
||||||
${nul} \
|
${nul} \
|
||||||
&& \
|
&& \
|
||||||
"${ffmpegPath}" -y \
|
"${ffmpegPath}" -y ${hwAcc} \
|
||||||
-i "${file}" \
|
-i "${file}" \
|
||||||
-c:v libx264 -b:v ${videoBitrate}k -pass 2 -c:a copy \
|
-c:v ${codec} -b:v ${videoBitrate}k -pass 2 -c:a copy \
|
||||||
${mappingTracks} -f mp4 \
|
${mappingTracks} -f mp4 \
|
||||||
${metadataAudio} \
|
${metadataAudio} \
|
||||||
"${finalFile}"`
|
"${finalFile}"`
|
||||||
|
|
Loading…
Reference in a new issue