Comments (3)
Yes, as long as you use two different keys, it should be possible to add two different watermarks. However of course if you can avoid it, it is better to use just one watermark which is better for the quality.
from audiowmark.
what's the theory and process of two different watermark by only two keys?
and another question, only consider technical engineer factors, is it possible to implement two watermakr by adding first watermark at first 50 second block, and adding second watermark at second 50 seconds block, and repeat this operation in the remaining blocks ?
from audiowmark.
First of all, if you haven't read the README section on recommendations for the payload, you can do so here:
https://github.com/swesterfeld/audiowmark#recommendations-for-the-watermarking-payload
We kind-of assume that 128-bit messages ought to be enough for everyone.
what's the theory and process of two different watermark by only two keys?
As a user create two keys using audiowmark gen-key
and use audiowmark add --key
to twice to add the watermark. Use audiowmark get --key
to get the message.
To see why using two different keys works you could look at the decoder code for single raw bits from the watermark.
The simplest possible decoder is here:
Line 101 in eced66f
This computes umag and dmag as sum of pseudo randomly selected amplitude bins from the FFT spectrum of each frame. Simplified if (umag > dmag) we decode an 1 bit, otherwise 0. Which amplitude bins are used is depends on the key. So if you use different keys for watermarking you can embed / decode different message bits in the same spectrum.
Btw I didn't do excessive testing for using two keys, it appears to work but it may be a little less robust than using just one key.
and another question, only consider technical engineer factors, is it possible to implement two watermakr by adding first watermark at first 50 second block, and adding second watermark at second 50 seconds block, and repeat this operation in the remaining blocks ?
Yes you could do that. However there are cases in audiowmark
where we currently assume that the A and B blocks carry the same data bits (but use different error correction coding). The most important feature is probably clip decoding. If you just have any randomly choosen small clip, we'll try to decode the message bits from the clip. It doesn't need to contain a full block.
Lets assume that we have a "short" N seconds clip. At any possible location, audiowmark
will try to decode the message bits from the clip, including if there is only a partial A and B block.
See also this comment:
Line 437 in eced66f
So it wouldn't be totally easy to change the code to no longer make the assumption that A and B blocks can be decoded together.
from audiowmark.
Related Issues (20)
- How do I extract the watermark from the ts file?
- sprintf is deprecated on macOS 13 HOT 1
- fails to compile with clang15 HOT 2
- hello please HOT 1
- Zita-resampler issue HOT 1
- zita-resampler not found after compiling from source HOT 3
- autoconf issue: AC_LIB_HAVE_LINKFLAGS HOT 1
- syncfinder
- How to find synchronization bits HOT 1
- Build for Windows HOT 18
- Audible noise in watermarked audio even with --strength 5, also not extractable even at --strength 100 HOT 11
- Build for Mac OSX High Sierra HOT 6
- Using 48kHz files
- Supported formats?
- --with-ffmpeg: deprecation warnings with libavcodec 7:5.1.4-0+deb12u1 HOT 1
- Enhancement Request: Preserve MP3 Metadata When Watermarking HOT 1
- Preserving Video Metadata When Watermarking
- Hope to support mingw32
- weird results with hls when original audio source is mono HOT 3
- Video Watermarking: support for multiple audio tracks
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from audiowmark.