• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
10

NVidia GPU-accelerated H264-encoder plugin, ready for public testing

Guest
Jun 27, 2013 Jun 27, 2013

Copy link to clipboard

Copied

Hi all,

I have written a 'proof-of-concept' GPU-accelerated H264-encoder for Adobe Media Encoder (CS6).  It requires an NVidia 6xx/7xx series "Kepler" GPU (CUDA capability 3.0), and uses the dedicated GPU's builtin hardware-encoder (NVENC) to offload the H264-encoding process from the host-CPU.  This software is "proof-of-concept", so it's missing some critical features (no interlaced-video support, no AAC-audio or Dolby AC-3 audio), and of course, it could be buggy!  But it's free.

!!!! Disclaimer: NVENC-export is third-party software that is not supported by either Adobe or NVidia.  It comes with no warranty -- use at your own risk.

Software/hardware Requirements:

(1)Adobe Premiere Pro CS6 or Media Encoder CS6 (Windows version)

Sorry, MacOSX is not supported. (NVidia NVENC SDK doesn't support MacOSX.)

(1)NVidia Kepler GPU <GKxxx> with 1GB VRAM or more  (GTX650 or above, GT650M or above)

(Sorry, NVidia Fermi <GFxxx> is NOT supported, it doesn't have the NVENC hardware feature)

Note,if you have MPE-acceleration enabled, keep in mind the NVENC-plugin consumes some additional VRAM because it uses your GPU to perform H264-encoding.

Strongly recommend a 2GB card

(2) Microsoft Visual C++ 2010 SP1 x64 redistributables

          (download this from Microsoft's website)

Installation instructions:

     In Adobe Premiere Pro CS6:

     (1)      On your system, locate the installation-directory for Premiere Pro CS6.

               Usually, this is C:/Program Files/Adobe/Adobe Premiere Pro CS6

    (2)     Copy the included file Plug-ins/Common/nvenc_export.prm

               to <installation dir>/Plug-ins/Common/

     -> To choose the NVENC-plugin in Premiere Pro,

          In the format-menu, select <NVENC_export>

     In Adobe Media Encoder CS6:

     (1)    On your system, locate the installation-directory for Media Encoder CS6.

          Usually, this is C:/Program Files/Adobe/Adobe Media Encoder CS6

     (2)     Copy the included file Plug-ins/Common/nvenc_export.prm

          to <installation dir>/Plug-ins/Common/

     -> To choose the NVENC-plugin in Media Encoder,

          in the format-menu, select <NVENC_export>

Performance & quality notes:

(1) How much faster is NVENC-export than Adobe's built-in Mainconcept H264 encoder?

Depends on your PC system.  On my test-system, which is ordinary desktop PC with Intel i5-3570K (4-core 3.4GHz), NVENC-plugin is roughly 4x faster than Mainconcept. On a dual-socket Xeon Ivy Bridge-E system, NVENC would probably only be 2x faster (in Media Encoder.)

(2)How does the video-quality compare?

Comparing similar settings/video-bitrate, Mainconcept performs better at lower-bitrates(less artifacts).  At medium-high bitrates, NVENC is comparable to Mainconcept.

(3) How does NVENC-export encode the video?

The plugin fetches videoFrames from the Adobe application, then converts the frames from YUV420 to NV12 surface-format (using host-CPU.)  Then it passes the converted frames to the NVENC front-end.  From here, NVENC hardware takes over, and handles all aspects of the video compression. When NVENC hardware is done, it calls the plugin to output write the elementary bitstream (to the selected filepath.) NVENC-hardware does NOT encode audio, nor does not multiplex the A/Vbitstreams -- this is still done in software (on the host-CPU)

The NVENC hardware block has very little CPU-overhead.  But since video-encoding is just 1 step in the entire Adobe rendering path, CPU-usage will likely still be quite high when using NVENC-plugin.

(4) What's the maximum-size video NVENC-export can handle?

H264 High-profile @ Level 5.1, which works out to roughly 3840x2160 @ 30fps. (Note the actual encoding-speed will probably be less than 30fps.)

(5) How fast is the NVENC-export hardware in Kepler GPU?

Assuming the Adobe application host is infinitely fast (i.e. can send video to plugin in zero-time), NVENC-hardware will encode High-profile (CABAC, 2 refframes, 1-bframe) 1920x1080p video @ ~100fps. At 3840x2160p (4k video), the hardware encode-speed drops to roughly 20-25fps.  That is still faster than a desktop PC.

NVENC-speed is generally same across the Kepler family - the high-end Geforce GTX Titan (or GTX780) is no faster than the entry-level Geforce GTX650, because all Kepler models share the same NVENC hardware-block, which is totally separate and independent of the GPU's 3D-graphics engine.

In premiere Pro 6, MPE acceleration will greatly affect how quickly Adobe can render video to the exporter.  So a more powerful Kepler GPU will probalby complete projects faster than a less powerful one (up to NVENC's performance ceiling.)  For more info, please refer to NVidia's NVENC whitepaper at their developer website (public)

(6) I have a multi-GPU setup, can I encode with multiple GPUs?

No, NVENC targets and uses only a single physical GPU.  (You can choose which one.)

Known limitations and problems:

NVENC-plugin is a 'proof-of-concept' program -- it is not a finished product.  So it's missing some features, and other things are known to be broken:

    • Interlaced video encdoing does not work at all (not supported in current consumer Geforce drivers)

    • Audio support is very limited: uncompressed PCM)

no AAC or Dolby-Digital

    • Multiplexer support is very limited: MPEG-2 TS only, using an included third-party tool TSMuxer.EXE

no MPEG-4 muxing (*.MP4)

    • When the muxed MPEG-2 TS file in Windows Media Player (WMP), there is no sound.  This is because WMP doesn't recognize PCM-audio in mpeg-2 ts files.  You have 2 choices; you can use a third-party media-player such as MPC-HC or VLC.  Or you can postprocess the audio-WAV file into a compatible format (Dolby Digital/AC-3)

    • in the pop-up plugin User-interface, the <multiplexer> tab is missing or not shown properly.

(To fix: Select a different codec, then re-select NVENC_export.)

    • Doesn't support older NVidia GPUs (GTX5xx and older, GT630 and lower)

Sorry, NVENC hardware was introduced with NVidia's Kepler family (2012)  Anything older than that will NOT work with the plugin.

TOPICS
Hardware or GPU

Views

373.7K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
replies 421 Replies 421
New Here ,
May 13, 2016 May 13, 2016

Copy link to clipboard

Copied

OK Update the NVidia 750TI does not support Nvenc Higher than 1.11 cuz AME or APR dont show this encoder.

I use now Windows 10 x64 Pro but it dont open.

Only 1.09 works!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 15, 2016 May 15, 2016

Copy link to clipboard

Copied

i have the same issues

nvenc_export 1.09 - j1

----------------------------------

Loading C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\nvenc_export.prm

The registry tells us not to cache so the plugin will be loaded from disk.

Loading from disk...

This plugin was recognized by loader d3092dcf-904a-4a97-b4ca-66aed7540d57.

nvenc_export 1.11 - j2

nvenc_export 1.11 - j3

1.12qaac

-------------------------------------------------

Loading from disk...

The library could not be loaded.

Nvidia GTX 970 driver 365.19

Windows 10 pro x64

Adobe Premiere CC 2015.2

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 15, 2016 May 15, 2016

Copy link to clipboard

Copied

I prefer the one whos making 1.09 without the rendering "ignore button" error should do again a 1.09 version but with the still frames fix from 1.11 -j2/j3.

Its sad to using 1.09 and making keyframes to fix this issue but properly its not working at all good.

So i have to change to the cpu encoder and this takes hours 47 mins rendering fullhd 60fps 1h  with 1.09 20 mins

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 20, 2016 May 20, 2016

Copy link to clipboard

Copied

Pascal has also introduced improvements in terms of video features. The GP104 can now encode 10-bit HEVC and decode 10-bit and 12-bit HEVC. Even VP9 video playback is also accelerated by the hardware (4K 120 Hz 320 Mbps). In combination with additional security hardware, for the first time Pascal is certified as PlayReady 3.0 (SL3000) and therefore enables the 4K Netflix playback in Windows 10, for example. Another new feature is the HDR support for HDMI 2.0b and DisplayPort 1.4 (first TVs are already available, monitors are expected in 2017).

The GP104 GPU can still drive four monitors simultaneously, but the HDMI 2.0b (Maxwell HDMI 2.0) and DisplayPort 1.4 ("Ready", up to 7680x4320 @ 60 Hz via two DP 1.3 ports) are new features.

Screenshot_2.jpg

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 15, 2016 Jan 15, 2016

Copy link to clipboard

Copied

Hi guys, I'm new to this encoding thing. It's working fine for me but can I just check whether SLI GPU usage is possible? And what's the usual GPU Utilization? Mine's at 13%. Is there a way to increase this to speed things up?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 15, 2016 Jan 15, 2016

Copy link to clipboard

Copied

Encoder doesn't support SLI configuration. You can choose only one GPU for rendering. I know what you think. I can't use my second Titan X as well 😞

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Jan 15, 2016 Jan 15, 2016

Copy link to clipboard

Copied

ZiggyGG wrote:

Encoder doesn't support SLI configuration. You can choose only one GPU for rendering.

Yeah, I thought I'd read that the NVidia API for the HVENC doesn't even support SLI at all.  And if that's actually the case, then there's no way to write an encoder (like this one) to do it.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 16, 2016 Jan 16, 2016

Copy link to clipboard

Copied

Ah I see. Thanks for the clarification on the SLI issue. Anyone having troubles with mp4box.exe? Sometimes it works fine, but other times it just 'stopped working'. I'm using the 32-bit version; can I use the 64-bit version instead?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 19, 2016 Jan 19, 2016

Copy link to clipboard

Copied

I got another problem now... I get slight audio delay when muxing into mp4 w/ mp4box. I tried encoding with standart H264, and there is no delay.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jan 26, 2016 Jan 26, 2016

Copy link to clipboard

Copied

Do you have a still image in your timeline? The plug-in has a bug where it only encodes one frame of a still image rather than the whole duration it's supposed to be shown, which causes a/v to fall out of sync. A workaround is to set an effect keyframe (on say, opacity) on the first frame of the still image.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 27, 2016 Jan 27, 2016

Copy link to clipboard

Copied

Well, the thing is I don't hve still images. I have text, I have multiple sounds, but I don't have still images;(

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jan 27, 2016 Jan 27, 2016

Copy link to clipboard

Copied

I just tested, and a non-animated text with no video background causes the same issue as a still image. A blank screen does as well. Basically, anywhere that Premiere can tell that the image doesn't change for some number of frames, it will send a single frame to the exporter with instructions to repeat it X times. Before my fix, the exporter was ignoring the repeat count and only encoding the frame once. This then messed up audio sync because the resultant video stream was missing frames.

Try my fixed prm file, or try a simplified sequence with no text/blanks/images in it to verify if it's something specific to your project or if everything exports with sync issues.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jan 27, 2016 Jan 27, 2016

Copy link to clipboard

Copied

I got pretty interesting result: first time I rendered my project I got Error after first text appeared, entire video after that was just this frame. Second time it rendered fine tho, without delays.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jan 27, 2016 Jan 27, 2016

Copy link to clipboard

Copied

NO problems so far with TODAY's (Jan 27th) Nvidia Driver Update! =D.. Though with a 1min30sec vid.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 06, 2016 Feb 06, 2016

Copy link to clipboard

Copied

After having noticed for some time that neroAacEnc.exe inserts a slight - non-modifiable - audio-delay (appr. 40 ms) at the start of the audio; see also:

  https://hydrogenaud.io/index.php/topic,69803.0.html

I have been looking for a replacement of this audio encoder.

Not so many otions out there but qaac

  https://sites.google.com/site/qaacpage/cabinet/qaac_2.58.zip?attredirects=0&d=1

is a command line AAC/ALAC encoder frontend based on the very good Apple encoder - and in contrast to the Nero encoder it is still actively developed and offers a lot of options.

I have changed the NVEnc_export code to work with this encoder and expanded Premiere's audio settings by a new field "Audio Start" with a default setting of 22 ms. This value gives me congruence with the ADOBE PCM audio for my settings. If you set it to 0 you will get the original delay introduced by the qaac encoder.

Audio_Settings.PNG

The Nero encoder will *not* work with this version of the Plug-in.

This Plug-in can be downloaded from Google Drive (nvenc_export.prm.qaac - Premiere will show it as NVENC_export 1.12Wc_W7; rename it after download as usual to nvenc_export.prm):

  https://drive.google.com/file/d/0BwViiZKy_eFpMjhVQ3hCejdnY0E/view?usp=sharing

It has been compiled with NVIDIAs Windows 7 library; and I have not yet found any problems using it with Windows 10 with NVIDIA's latest driver.
But in order to use this Plug-in you have to install all necessary qaac- and Apple-components as explained on the qaac-pages.

As always when installing a changed Plug-in, delete all your current NVENC_export settings and reset the Plug-in cache as described in this document

  https://helpx.adobe.com/premiere-pro/kb/features-presets-missing-premiere-pro.html
as well as in nvenc4everyone's documentation and in my previous posts. Omitting this step will garble your Premiere Export settings window.

Perhaps nvenc4everyone could consider to officially include this audio encoder in a future version of NVENC_export instead or as an alternative to the Nero encoder.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 06, 2016 Feb 06, 2016

Copy link to clipboard

Copied

Plugin Loading.log:
Loading C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\nvenc_export.prm

Loading from disk...

The library could not be loaded.

Thw v1.11 codebase has a serious changes that prohibits its work with windows 7. As far as i can see, plugin cant detect appopriate nvenc hardware.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 07, 2016 Feb 07, 2016

Copy link to clipboard

Copied

irisb50359875 wrote:

This Plug-in can be downloaded from Google Drive (nvenc_export.prm.qaac - Premiere will show it as NVENC_export 1.12Wc_W7; rename it after download as usual to nvenc_export.prm):

I'm getting the "Error Compiling Movie" dialog when the muxing starts.  I have QAAC64 installed and I told the NVENC plugin where to find it.  Same with MP4Box.  The Un-muxed files exist, but it never gets a chance to combine them.

Also, shouldn't I have the chance to change the bitrate of the output?  I don't see that in the dialog at all, unless I'm looking in the wrong spot.

- Encoding Time: 00:00:12

02/07/2016 07:45:22 AM : Encoding Failed

------------------------------------------------------------

Note from RenderAndWriteAllVideo()

Video Frame#0 info: Adobe rendered_PixelFormat0 = 0x37317659 'Yv17'

Note from RenderAndWriteAllVideo()

Using PUSH-mode to render video

Export Error

Error compiling movie.

Unknown error.

------------------------------------------------------------

enc2.PNG

enc1.PNG

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 08, 2016 Feb 08, 2016

Copy link to clipboard

Copied

jasonvp wrote:


I'm getting the "Error Compiling Movie" dialog when the muxing starts.  I have QAAC64 installed and I told the NVENC plugin where to find it.  Same with MP4Box.  The Un-muxed files exist, but it never gets a chance to combine them.

Also, shouldn't I have the chance to change the bitrate of the output?  I don't see that in the dialog at all, unless I'm looking in the wrong spot.

I dropped back to a slightly earlier version of the plugin, released by someone else.  I think there's something up with your version of the plugin, or with the QAAC software.  Either way, the previous version works fine on my Win 10 Pro (64 bit) rig.

Further, I see where I was goofing with the bit rate thing, but the results aren't what I'd expect.  I set CBR and 25Mbps, and I'll randomly get files that are 30Mbps or even higher.  Sometimes much lower.  So much for CBR and setting the bit rate...

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 25, 2016 Feb 25, 2016

Copy link to clipboard

Copied

I've been using 1.09 since forever.    I have it setup to produce 720p BluRay compatible files.

With upgrade to new GTX 750, I upgraded NVidia to 361.91 and also am trying to upgrade to newer nvenc_export plugins.     Mostly successful but no go on BluRay compatibility.

111-j3 issues:

   720p VBR-2pass video

     + good VBV buffer size definition

     - all encoding parameters good EXCEPT it Max bitrate set to 40000 regardless of what I set in the encoder.   peakBitRate is correct in Codec Settings.

   1080i VBR-2pass video

      + wonderful that this setting now works

      + good VBV buffer size definition

      - Max bitrate is to 40000.   Nothing seems to affect it

      - max re-order frames set to 3 (max is 2)

111 and 112wc-W7 issues:  (note difference from 111-j3)!!!

     different functionality and errors than 111-j3

     -->> audio encoding to qcc fails.   Using linked file to post.

     720p VBR-2 pass

       - no VBV buffer defined

       - Max bitrate set to 30000 for 4.0, 750000 for 4.1.    I set the max to 23000

     1080i VBR-2 VBR

        - no VBV buffer defined

        - Max bitrate for 1080i is 30000 so 4.0 is OK, but for 4.1 it goes up to 750000, again it is not adjustable.

So it back to 1.09 and NVidia 347

Thanks for the work tho!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Apr 12, 2016 Apr 12, 2016

Copy link to clipboard

Copied

NVENC_export 1.12Wc_W7

At the end of the coding error comes out:

"Note from RenderAndWriteAllVideo()

Video Frame#0 info: Adobe rendered_PixelFormat0 = 0x37767975 'uyv7'

Note from RenderAndWriteAllVideo()

Using PUSH-mode to render video

Ошибка экспорта

Ошибка компиляции видеофильма.

Тип ошибки неизвестен."

Win7 64x, Premier Pro 2015 9.2.0 (41)
Nvidia 364.72

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jan 26, 2016 Jan 26, 2016

Copy link to clipboard

Copied

Hopefully nvenc4everyone sets up a code repository (GitHub or otherwise) so that people can contribute fixes to a central location.

But in the meantime, here's a version that is based on 1.11 and includes the following changes:

- Fixes mp4box.exe crash from MediaInfo text being encoded in the file (Thanks to irisb50359875 for describing their fix)

- Fixes still images having only one frame rendered (which also caused audio/video to fall out of sync)

Zip file contains x86 and x64 binaries, but only the x64 binary has been tested. You can download it here (nvenc_export 1.11 - j1.zip).

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Jan 31, 2016 Jan 31, 2016

Copy link to clipboard

Copied

jstabb wrote:

Hopefully nvenc4everyone sets up a code repository (GitHub or otherwise) so that people can contribute fixes to a central location.

But in the meantime, here's a version that is based on 1.11 and includes the following changes:

- Fixes mp4box.exe crash from MediaInfo text being encoded in the file (Thanks to irisb50359875 for describing their fix)

- Fixes still images having only one frame rendered (which also caused audio/video to fall out of sync)

Zip file contains x86 and x64 binaries, but only the x64 binary has been tested. You can download it here (nvenc_export 1.11 - j1.zip).

Your version doesn't show up for me when trying to export a video.  Version 1.11wb shows up fine, but when I copy your file into the directory it disappears in the program.  When I copy 1.11wb back, it returns to normal in the program.

The problem is, version 1.11wb has the issue with still frames, so it's unusable.  Your version would be perfect.  I'm not sure how creating plug-ins works, because you say x64 was tested, but I'm on the latest versions of CC and Nvidia drivers, with Windows 10 x64 if that matters.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Feb 01, 2016 Feb 01, 2016

Copy link to clipboard

Copied

Oops, it looks like I included debug binaries by mistake. Here's a new link with release binaries: nvenc_export 1.11 - j2.zip

Sorry about that.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Feb 01, 2016 Feb 01, 2016

Copy link to clipboard

Copied

Hmmm, I wonder if it's something on my end?  It's still not showing up.  I know it's in the right place because I'm directly copying and overwriting the old file which does show up in AME and Pr.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Feb 01, 2016 Feb 01, 2016

Copy link to clipboard

Copied

Ah... I think I know what happened. I didn't notice that Visual Studio 2015 automatically updated the project to use the 2015 toolset. So those binaries would need the Visual C++ 2015 redist.

You can either grab that, or you can grab an updated build that uses the 2013 toolset: nvenc_export 1.11 - j3.zip

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines