roc-copy - Man Page

copy local audio


roc-copy Options


Read audio stream from a file, transform it, and and write it to a another file.


-h,  --help

Print help and exit

-V,  --version

Print version and exit

-v,  --verbose

Increase verbosity level (may be used multiple times)

-L,  --list-supported

list supported schemes and formats


Input file URI


Output file URI


Force input file format


Force output file format


Duration of the internal frames, TIME units


Output sample rate, Hz


Resampler backend  (possible values="default", "builtin", "speex", "speexdec" default=`default')


Resampler profile  (possible values="low", "medium", "high" default=`medium')


Enable self profiling  (default=off)


Set colored logging mode for stderr output (possible values="auto", "always", "never" default=`auto')

File URI

--input and --output options require a file URI in one of the following forms:

  • file:///ABS/PATH -- absolute file path
  • file://localhost/ABS/PATH -- absolute file path (alternative form; only "localhost" host is supported)
  • file:/ABS/PATH -- absolute file path (alternative form)
  • file:REL/PATH -- relative file path
  • file://- -- stdout
  • file:- -- stdout (alternative form)


  • file:///home/user/test.wav
  • file://localhost/home/user/test.wav
  • file:/home/user/test.wav
  • file:./test.wav
  • file:-

The list of supported file formats can be retrieved using --list-supported option.

If the --output is omitted, the conversion results are discarded.

The --input-format and --output-format options can be used to force the file format. If the option is omitted, the file format is auto-detected. This option is always required for stdin or stdout.

The path component of the provided URI is percent-decoded. For convenience, unencoded characters are allowed as well, except that % should be always encoded as %25.

For example, the file named /foo/bar%/[baz] may be specified using either of the following URIs: file:///foo%2Fbar%25%2F%5Bbaz%5D and file:///foo/bar%25/[baz].


Convert sample rate to 48k:

$ roc-copy -vv --rate=48000 -i file:input.wav -o file:output.wav

Drop output results (useful for benchmarking):

$ roc-copy -vv --rate=48000 -i file:input.wav

Input from stdin, output to stdout:

$ roc-copy -vv --input-format=wav -i file:- \
    --output-format=wav -o file:- >./output.wav <./input.wav

See Also

roc-recv(1), roc-send(1), the Roc web site at


Please report any bugs found via GitHub (


See authors page on the website for a list of maintainers and contributors.


2024 Roc Toolkit 0.3