ffmpeg делают водяные знаки без vhook? [дубликат]

Другая опция состоит в том, чтобы рассмотреть рассмотрение библиотека JSch . JSch, кажется, предпочтительная библиотека для нескольких больших проектов с открытым исходным кодом, включая Eclipse, Муравья и Apache палата общин HttpClient, среди других.

Это поддерживает и пользователя/передачу и основанные на сертификате логины приятно, а также весь большое количество других вкусных функций SSH2.

Вот простой удаленный файл, получают по SFTP. Обработку ошибок оставляют как осуществление для читателя:-)

JSch jsch = new JSch();

String knownHostsFilename = "/home/username/.ssh/known_hosts";
jsch.setKnownHosts( knownHostsFilename );

Session session = jsch.getSession( "remote-username", "remote-host" );    
{
  // "interactive" version
  // can selectively update specified known_hosts file 
  // need to implement UserInfo interface
  // MyUserInfo is a swing implementation provided in 
  //  examples/Sftp.java in the JSch dist
  UserInfo ui = new MyUserInfo();
  session.setUserInfo(ui);

  // OR non-interactive version. Relies in host key being in known-hosts file
  session.setPassword( "remote-password" );
}

session.connect();

Channel channel = session.openChannel( "sftp" );
channel.connect();

ChannelSftp sftpChannel = (ChannelSftp) channel;

sftpChannel.get("remote-file", "local-file" );
// OR
InputStream in = sftpChannel.get( "remote-file" );
  // process inputstream as needed

sftpChannel.exit();
session.disconnect();

5
задан mpromonet 12 June 2015 в 21:06
поделиться

2 ответа

Если вы знакомы с Java, вы можете сделать это с помощью Xuggler . В частности, учебные пособия для MediaTool API Xuggler показывают, как декодировать и кодировать видео, и отдельно, как создать видео с нуля, используя изображения, которые вы создаете. Нетрудно объединить и эти концепции, чтобы создать программу, которая может декодировать видео, накладывать PNG на видео и затем перекодировать.

0
ответ дан 14 December 2019 в 08:55
поделиться

Используя Xuggler, мы можем сделать это в Джава. при кодировании видео с помощью IMediaTool вы получите последовательность изображений. Используя эти изображения, поместите водяной знак на каждое из этих изображений и создайте выходное видео. Ниже приведен блок кода

BufferedImage imageB = event.getImage();

/*....................... water mark .........................*/
Graphics2D g2d = (Graphics2D) imageB.getGraphics();
g2d.drawImage(imageB, 0, 0, null);

//Create an alpha composite of 50%
AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f);
g2d.setComposite(alpha); 

g2d.setColor(Color.YELLOW);


g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

g2d.setFont(new Font("Arial", Font.BOLD, 30));

String watermark = "Sample water mark";

FontMetrics fontMetrics = g2d.getFontMetrics();
Rectangle2D rect = fontMetrics.getStringBounds(watermark, g2d);
yScrolling = imageB.getHeight() - (int) rect.getHeight() / 2;

g2d.drawString(watermark, (imageB.getWidth() - (int) rect.getWidth()) / 2,
                         (imageB.getHeight() - (int) rect.getHeight()) / 2);
g2d.drawString(watermark, xScrolling,yScrolling);

//Free graphic resources
g2d.dispose(); 

 /*....................... water mark .........................*/
4
ответ дан 14 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: