Skip to content
Castreon
Installation

Migrating from xaccel-codec

Updated 04 Oct 2026

Move your channels, sources, outputs, transcoding settings and DVB adapters from xaccel-codec to Castreon straight from the panel, in a few minutes. xaccel keeps running the whole time, and nothing is written until you confirm.

Available from Castreon 1.0.3. Supported: xaccel-codec 5.x (tested with 5.5.17).

How it works

  1. You upload the automatic backup that xaccel already keeps on its server.
  2. Castreon reads it and shows you a report: what will be created, what cannot be kept and why. Nothing is changed yet.
  3. You confirm. The channels are created stopped, so the sources are not pulled twice while xaccel is still running.
  4. You check the channels, start them and switch your load balancers over. The old xaccel stream addresses keep working in Castreon.

The backup is only read. Castreon does not connect to xaccel, does not stop it and does not change anything on it.

Before you start

  • Castreon is installed and activated on the server you are migrating to: see Installation and activation.
  • Your plan covers the number of channels you want to run at the same time.
  • DVB sources: the DVB cards must be in the Castreon server. If Castreon runs on the same server as xaccel, a card can only be used by one program at a time: stop xaccel (or the channels using that card) before you start the DVB channels in Castreon.
  • If you also capture with Astra (Cesbo), upload its configuration in the same analysis: see Migrating from Astra (Cesbo).

1. Copy the xaccel backup

xaccel keeps automatic backups in /opt/xaccel-codec/backup/. On the xaccel server, list them, newest first:

ls -lt /opt/xaccel-codec/backup/

The files are named xaccel-codec-<version>-<date>-<id>.gz. Copy the newest one to your computer, for example:

scp root@XACCEL-SERVER:/opt/xaccel-codec/backup/xaccel-codec-5.5.17-20261004182209-3e042dc4.gz .

Use the most recent file: changes made in xaccel after the date in the file name are not in it.

Handle the backup with care. It contains xaccel's own accounts and passwords. Castreon does not read them, but the file does contain them: keep it on a trusted computer and delete it when the migration is done.

2. Analyse

  1. In the Castreon panel, open Settings → Migration (xaccel, Astra).
  2. Under xaccel-codec backup, choose the .gz file.
  3. Click Analyse.

Backups of several gigabytes are accepted (for example when they contain EPG data). The analysis stays valid for 30 minutes; after that, upload the file again.

3. Read the report

At the top, four figures summarise the import:

Figure Meaning
Channels channels that will be created, and how many of them run without transcoding (passthrough)
New profiles transcoding profiles that will be created; channels with identical settings share one profile
Outputs HLS, HTTP-TS and push outputs (UDP, SRT, RTMP)
Other new DVB adapters, groups and allowed IP addresses; adapters that already exist are reused

The table lists every channel:

  • Channel — name, address name (slug) and group;
  • Source — the main source, for example DVB · Cable 610 · SID 40805 or HTTP;
  • Profile — the transcoding profile, or passthrough;
  • Outputs — HLS, HTTP-TS, UDP…;
  • Old address — the xaccel address that will keep working, for example /stream/15/30015.m3u8;
  • Notes — anything that could not be kept for this channel.

Below the table:

  • Profiles and DVB adapters — what will be created; already exists, that one is used means nothing new is created;
  • Settings that are not kept — settings with no equivalent, with the number of channels affected;
  • What is not migrated — data that is deliberately left out (see below).

Allowed addresses

If xaccel had an IP whitelist, the report offers Add the N allowed addresses from xaccel. The list applies immediately to all channels: players and load balancers that are not on it are refused (HTTP 403). Tick it only if the list is complete, including the addresses of your load balancers. You can change it at any time under Settings → Stream access: see Scheduled restarts and IP restrictions.

4. Import

Click Import N channels (stopped). Groups, DVB adapters and profiles are created first; if one of them fails, nothing is kept. Channels are then created one by one: a channel that cannot be created (for example one without any usable source) is listed under Could not be imported, and the rest are imported.

5. Check and start

  1. Open Channels. The imported channels are stopped; their notes contain the xaccel stream number.
  2. Open a few channels and check the sources, the profile and the outputs. A DVB source shows the adapter and the service (SID).
  3. For DVB, open DVB adapters and check that each adapter is locked on signal: see DVB adapters, tuners and scanning.
  4. Start the channels, a few at a time, and compare them with xaccel.

6. Switch over

The old xaccel addresses work in Castreon on the panel port (33400 by default):

xaccel Castreon
http://XACCEL:33200/stream/15/30015.m3u8 http://CASTREON:33400/stream/15/30015.m3u8 (the channel's HLS playlist)
http://XACCEL:33200/stream/15/axn.ts http://CASTREON:33400/stream/15/axn.ts (the channel's HTTP-TS stream)

In your load balancers you only change the host and the port. The same access rules apply as for the regular Castreon addresses: see Delivery.

When everything runs in Castreon, stop xaccel.

What is migrated

xaccel Castreon
Channel name, logo URL, EPG ID, on-demand mode the same on the Castreon channel; the slug is created from the name
Sources (HTTP/HTTPS, UDP/RTP, SRT, RIST, RTMP, RTSP), in failover order channel sources, with user agent, headers and referer
DVB sources (dvb://… and scanned services) DVB source linked to the imported adapter, with the service SID
Video, audio and subtitle mapping, rate emulation the same on each source
Video and audio encoders (NVENC, QSV, VAAPI, CPU; H.264, HEVC, AV1, VP9; AAC, Opus, AC-3, E-AC-3, MP3), bitrate, size, preset, GOP, deinterlace, text overlay a transcoding profile: see Transcoding profiles
Video and audio copied, without overlay passthrough (no profile)
Burned-in, copied or WebVTT subtitles the channel's subtitle mode
Scheduled restarts the channel's scheduled restarts
Categories channel groups
Outputs HLS, HTTP, UDP/RTP, SRT, RTMP HLS (segment duration and playlist size kept), HTTP-TS, push outputs
DVB-C, DVB-T and DVB-T2 tuning DVB adapters
IP whitelist allowed addresses (optional)

What is not migrated

  • xaccel accounts, users and reseller packages;
  • the xaccel license and server data;
  • VOD (movies and series) and EPG data — each channel's EPG ID is kept;
  • xaccel load balancing and proxies;
  • conditional access configuration;
  • sources whose address contains keys — the channel shows a note; add them manually;
  • satellite adapters (DVB-S/S2) — reported; Castreon currently tunes cable and terrestrial;
  • logos uploaded to xaccel as files (upload them again in the profile), audio volume changes, logo removal (delogo), timeshift;
  • xaccel's global daily restart — Castreon does not need it; you can add a scheduled restart per channel.

Running it again

The import can be repeated safely with the same backup or a newer one:

  • channels that were already imported are recognised by their xaccel stream number and are not duplicated;
  • profiles and DVB adapters that were already imported are reused;
  • to import a channel again, delete it in Castreon first, then run the import.

The old addresses are tied to the xaccel stream number. If you merge several xaccel servers into one Castreon, channels with the same stream number on different servers are treated as the same channel. Migrate such servers to separate Castreon servers, or open a ticket and we will help you.

If something goes wrong

  • “The file does not look like an xaccel-codec backup” — use a file from /opt/xaccel-codec/backup/ (xaccel-codec-<version>-….gz), not a database export made another way.
  • “The analysis has expired” — more than 30 minutes passed between the analysis and the import; upload the file again.
  • Players get HTTP 403 after the import — the allowed address list was imported and does not include them; correct it under Settings → Stream access.
  • A channel does not start because of the license — your plan allows fewer running channels; stop other channels or upgrade the plan.
  • A DVB channel does not start — check under DVB adapters that the adapter is enabled and locked, and that no other program (xaccel, Astra) uses the card.
  • A channel is listed under “Could not be imported” — read the reason next to it; usually the channel had no source that Castreon can use. Create it manually.

If the problem persists, open a ticket and attach the report (a screenshot is enough): see How to open a good ticket.

Privacy

Cookies & local storage

Strictly necessary cookies are always active. Analytics and marketing use Google services and only start if you accept them — until then nothing is sent to Google. You can withdraw your consent here at any time.

Strictly necessary

Without them, sign-in, forms and your chosen language don’t work. They don’t require consent (§ 25(2) no. 2 TDDDG).

Always active
Name Purpose Duration Type
castreon-session Keeps your session: sign-in and chosen language 2 hours, renewed on every visit Cookie
XSRF-TOKEN Protects forms against forged requests 2 hours, renewed on every visit Cookie
remember_web_… Only if you tick “Remember me” at sign-in Until you sign out, max. 400 days Cookie
__cf_bm Cloudflare: tells visitors and bots apart, only when traffic is being checked 30 minutes Cookie · Cloudflare
castreon:consent Remembers your cookie choice 12 months Local storage
theme Customer account appearance: light, dark or system Until you change it Local storage

Analytics

Google Analytics 4 (Google Ireland Ltd.): which pages are visited, where visits come from and on which type of device — with pseudonymous identifiers, without storing your IP address. Helps us improve the website.

Name Purpose Duration Type
_ga Google Analytics: recognises the visitor (pseudonymous ID) 13 months Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: keeps the state of the visit 13 months Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): measures whether visits from Google ads lead to a trial or a plan, and allows Castreon ads to be shown on other websites (remarketing).

Name Purpose Duration Type
_gcl_au, _gcl_aw Google Ads: links the visit to the ad click (conversions) 90 days Cookie · Google Ads
IDE, test_cookie Google Ads: remarketing and ad measurement, on Google domains (doubleclick.net) Up to 13 months Cookie · Google (third party)