Skip to content
streamneo.
Troubleshooting11 min read

OVHcloud VPS YouTube Stream Has No Audio: FFmpeg Fixes

Trace missing audio from the source file through FFmpeg mapping, encoding, logs and YouTube preview before changing a live command.

sn.
StreamNeoPublished 5 October 2026
Worth sharing?

If your OVHcloud VPS YouTube stream has video but no sound, first find whether audio is missing from the source, excluded by FFmpeg, or lost after YouTube receives the stream. The title alone cannot identify the cause: it takes the media file, the command and the stream-health evidence to do that.

Work through those points in order, changing one thing at a time. A file that contains no audio needs a different response from an audio stream that FFmpeg fails to map, and neither is fixed by guessing at codec flags.

Confirm where the audio disappears

Start by checking the same stream at three points: the source file, FFmpeg's output, and YouTube's preview. Write down what you hear or see at each point. If the source itself has no audible track, the problem is upstream of the VPS command. If a local output has sound but YouTube's preview does not, focus on the outgoing stream's codec, protocol and ingestion status.

A YouTube live page is not always a useful first listening test. Check the preview in YouTube Studio while the broadcast is active, and look for any stream-health message. A picture arriving at YouTube does not by itself establish that an audio stream arrived or decoded correctly. Conversely, a brief delay or muted browser tab can look like a stream fault, so verify playback controls and local monitoring before changing the command.

Record the exact time of a test and the point at which audio disappears. Avoid changing the input, mapping, codec and output endpoint together: if sound returns, you will not know which change mattered, and a second failure will be harder to diagnose. If you need a wider overview of common symptoms, the audio and video troubleshooting guide is a useful companion, but this page follows the source-to-preview path for FFmpeg.

Check whether the source file contains audio

Inspect the file before editing the command. Run ffprobe -hide_banner -i input.mp4, substituting the actual path and extension. FFprobe's input summary lists streams such as video and audio. Look for an audio stream, often labelled Audio, and note its codec, channel layout and sample rate if present. The FFmpeg command's input summary can provide similar evidence when it opens the file.

No listed audio stream means the file is video-only as far as that probe sees. Do not add an output AAC option and assume it will invent the speech or music that should have been there. Find the intended audio-bearing source or determine whether the content is deliberately silent. If a source file should have a soundtrack, check that you selected the right file and that the export or download included audio.

A listed audio stream is not proof that it contains audible material. It might be silent, very quiet, or contain the wrong programme. Listen to the source directly, or extract a short sample for local playback. Compare a section where speech or music should be obvious; do not rely on a few seconds of an intentionally quiet intro. A waveform or stream listing can show that data exists, but only listening establishes whether the expected content is audible.

If you cannot share the media file, share the relevant probe lines rather than the whole file. Keep paths generic if they disclose a customer, project or account name. This initial check prevents a common dead end: tuning output settings when the desired sound never entered the command. For a prerecorded devotional loop on a VPS, the source-path questions overlap with those in the Telugu devotional stream setup guide, but the actual file still needs to be inspected.

Inspect FFmpeg stream mapping and output

When a file contains several streams, make the intended selections explicit. FFmpeg's -map option controls which input streams go to an output. For a file with one video stream and one audio stream, -map 0:v:0 -map 0:a:0? says to select the first video stream and, if available, the first audio stream from input zero. The ? makes that audio mapping optional: it lets the command proceed if audio is absent; it does not create a track or restore missing sound.

Stream numbers are not universal. A file could include multiple language tracks, commentary, or other audio, so 0:a:0 may not be the intended programme. Use the probe output to identify the right stream and adjust the index. FFmpeg's documentation for stream selection and mapping explains the selection rules and why mapping is useful when inputs contain alternatives.

Search the full command for -an, which disables audio recording in the output. Also inspect each output section: FFmpeg options apply in relation to inputs and outputs, and a later output may have different mapping or codec choices from an earlier one. A command can successfully produce video while leaving out audio, so a process that runs without an obvious error is not enough to verify selection.

If you are looping or changing video sources, preserve a known-good audio path while testing. The question of changing visuals without disrupting a live broadcast is covered in how to change the video source without changing a YouTube Live URL; here, keep the diagnosis narrower and confirm that the output receiving the video also receives the desired audio stream.

Verify audio codec and encoding options

The correct audio settings depend on the ingestion protocol and channel layout. For RTMP or RTMPS, YouTube's encoder settings guidance lists AAC or MP3 audio. For stereo it recommends a sample rate of 44.1 kHz and a bitrate of 128 Kbps. AAC is a practical first test for a conventional stereo stream, but those settings are not a universal cure: the command must still select real audio and the stream must reach the configured endpoint.

A typical output fragment for an input file that already has audio might include -c:a aac -ar 44100 -b:a 128k. Pair it with the appropriate mapping and a protocol-compatible output. These are YouTube's stated stereo recommendations, not a promise that every input, FFmpeg build or stream configuration will work unchanged. Confirm the active protocol and encoder configuration before copying a template.

Stream path or layout Audio points to check Practical implication
RTMP or RTMPS stereo AAC or MP3; YouTube recommends 44.1 kHz and 128 Kbps Check mapping first, then test a compatible output encode.
RTMP 5.1 surround YouTube's 5.1 guidance specifies AAC and recommends 48 kHz and 384 Kbps Do not apply these surround settings to an ordinary stereo programme.
HLS Follow YouTube's separate HLS ingestion requirements Do not assume an RTMP/RTMPS audio recipe also configures HLS packaging.

For HLS, codec choice is only one part of the setup; segment and playlist packaging matter as well. Use the documentation for the protocol you actually send. Switching a command's audio codec will not correct a mismatched endpoint or packaging arrangement.

If the source intentionally has no sound but the destination workflow requires an audio stream, a generated silent input is a separate choice. FFmpeg's anullsrc filter can be used as a silence source, for example -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100. You would then map the generated audio input and encode it for the selected destination. Check that the installed FFmpeg build supports the filter and adapt the input index to the complete command. Silence is appropriate only when silence is the intended content; it cannot replace missing music or speech.

Check logs for audio errors

Read the FFmpeg output from the start of the run, not just the final lines. The input summary shows what FFmpeg found; output stream lines indicate what it is preparing to write. Look for whether an audio output is listed and which codec is shown. Warnings about unsupported formats, failed decoding, filter configuration, or unavailable devices point to different branches than a command that simply omits an audio output.

Capture a short diagnostic run or preserve the relevant startup and error lines from the long-running process. Include the command shape, input summary, output stream summary and the first audio-related warning or error. Do not paste a full unfiltered environment dump: it can contain credentials, filesystem paths or unrelated account details.

Treat stream keys as passwords. Before sharing a command, replace the actual key in the RTMP/RTMPS URL with a clear placeholder such as STREAM_KEY_REDACTED; do not leave even part of the key visible. Redact tokens in logs, private hostnames, usernames, IP addresses and paths that reveal personal or customer information. Preserve useful technical evidence such as codec names, stream indexes, sample rates and error text. Redaction should remove secrets, not the details needed to understand the audio path.

If the log shows no audio output stream, return to mapping and output options. If an audio stream is written but YouTube remains silent, check the output file or stream locally and then inspect the platform preview and health message. If the error concerns a device input, treat that as a separate source problem rather than applying a file-based command unchanged.

Listen locally and inspect YouTube preview

A local listening test separates encoding from ingestion. If you are writing a short test output to a file, open it in a player that reports its audio track and listen to the expected passage. If sound is missing there too, the problem remains in source selection, mapping or encoding. If the local output sounds correct but the YouTube Studio preview does not, investigate the stream endpoint, protocol settings and YouTube's stream-health feedback.

For a live test, use an unlisted or otherwise appropriate test broadcast if that suits your channel workflow, and avoid disrupting a scheduled programme. Check that Studio's preview is unmuted and wait long enough for the test content to reach the relevant passage. Compare what the preview reports with FFmpeg's output stream summary; each is evidence about a different leg of the path.

YouTube recommends testing before going live, including audio and video movement similar to the planned stream, in its encoder settings guidance. A test is particularly useful for a long-running channel: a command that starts successfully is not equivalent to a checked preview with audible content. Keep a short record of the settings that worked so that a later file or command change can be compared against a known baseline.

If your workflow runs an encoded file continuously, separate the reliability question from the audio question. A reconnect strategy may help a stream recover after a network interruption, as discussed in the FFmpeg reconnect guide, but reconnect handling cannot create or map an audio track that is absent.

Test a corrected command safely

Make a copy of the current command and alter only the part supported by your evidence. If the source has audio but the intended stream is not selected, add or correct the mapping. If mapping is correct but the outgoing codec is unsuitable for the configured RTMP/RTMPS path, test the audio encoding options. Keep the old command and note each change so that you can roll back cleanly.

For a simple input file with audio, this is an illustrative RTMP/RTMPS starting point, not a tested command for every VPS or stream configuration:

ffmpeg -re -i input.mp4 \\
  -map 0:v:0 -map 0:a:0? \\
  -c:v libx264 -c:a aac -ar 44100 -b:a 128k \\
  -f flv 'rtmps://a.rtmps.youtube.com/live2/STREAM_KEY'

Replace the input, endpoint and stream key privately, and confirm they match your YouTube encoder setup. Never publish a real key. The optional map will not add an audio stream if none is present, so check the probe first. Confirm the installed FFmpeg build supports the chosen codecs and that the output options are placed for the correct output.

Test with a representative clip or controlled preview before using the corrected command for a full overnight run. Listen to the local output where applicable, then check YouTube Studio's preview and health messages. If one test is inconclusive, change one variable and repeat rather than piling on more flags. A cloud-based workflow can remove the need to keep your own computer running and help avoid manually restarting a file broadcast after a drop; StreamNeo is relevant when that specific operational burden is the issue, not as a substitute for diagnosing an incorrectly mapped or silent source.

Before committing, compare the operating options on the pricing page. When the file and channel are ready, start free — 24-hour trial, no card.

FAQ

How do I add audio to an FFmpeg stream?

First confirm that the input contains the audio you want. Map the intended audio stream, avoid disabling audio with -an, and encode it with settings supported by your chosen YouTube ingestion protocol. If the source is video-only, you need to supply a real audio source or deliberately generate silence; an output codec option alone cannot restore missing content.

Why does FFmpeg show video but no audio?

The input may have no audio stream, the command may map a different stream, or the output options may disable or fail to encode audio. YouTube may also receive a stream whose protocol or audio configuration is unsuitable. The input summary, output stream lines, local listening test and Studio preview help distinguish those possibilities.

Does an OVHcloud KVM console provide microphone audio?

Do not assume that it does. OVHcloud describes KVM as remote keyboard, video and mouse access; that is not evidence that the VPS exposes a physical microphone or sound-capture device. For device capture, check which ALSA devices Linux actually recognises and confirm that FFmpeg can access the required input.

Can I send silence when the source has no audio?

If silence is genuinely intended, an anullsrc input can provide a generated track, provided the installed FFmpeg build supports it and the track is mapped and encoded correctly. Test the result before going live. It creates silence, not the music, narration or ambience that may be missing from the original file.

YOU’VE REACHED THE END

Keep the ideas coming.

More guides, useful tools and a little help for your next broadcast.

Back to the journal ↗
YOUR NEXT READ

A little more to explore.

More Troubleshooting guides ↗ · All topics ↗