Guida (software FREE): convertire MP4 “TV/HbbTV friendly” e creare renditions per playlist .smil (HandBrake / Shutter Encoder / FFmpeg)

Questa guida spiega passo per passo come usare software gratuiti per convertire MP4 in file compatibili con HbbTV e Smart TV (Samsung Tizen, LG webOS, ecc.) e preparare più renditions da usare in una playlist .smil (Wowza o sistemi simili).

Obiettivo
Ottenere MP4 robusti e compatibili usando parametri “standard”: H.264 Main, level coerente, GOP stabile (keyframe regolari), e AAC-LC 48 kHz.

1) Prima di iniziare (settaggi target)

Per massima compatibilità HbbTV/TV, punta a:

Target consigliati (compatibilità alta)
  • Contenitore: MP4
  • Video: H.264 / AVC
  • Profilo H.264: Main
  • Pixel format: yuv420p (4:2:0) — fondamentale per TV
  • Frame rate: uguale alla sorgente (tipico 25 o 50)
  • Keyframe interval (GOP): 2 secondi (stabile)
  • Audio: AAC-LC, 48 kHz, Stereo (2.0)
  • Bitrate audio: 96–128 kbps
Regola pratica GOP
Keyframe ogni 2 secondi:
  • 50 fps ? keyint 100
  • 25 fps ? keyint 50
Questo aiuta molto HLS/DASH e il cambio qualità (ABR).

2) Opzione A: HandBrake (FREE, facilissimo)

Ideale per: conversioni singole rapide e MP4 puliti.
Output: MP4 (H.264 + AAC), ottimo come “sorgente” per renditions SMIL.

HandBrake: passo per passo (MP4 compatibile TV/HbbTV)
  1. Apri HandBrake ? Open Source ? seleziona il tuo MP4.
  2. Tab Summary:
    • Format: MP4
    • Attiva Web Optimized (fast start / moov atom all’inizio).
  3. Tab Video:
    • Video Codec: H.264 (x264)
    • Framerate (FPS): Same as source
    • Constant Framerate (CFR) (consigliato per TV)
    • Quality:
      • Oppure usa Avg Bitrate (es. 2500–3500 kbps per 720p)
      • Oppure RF se sai già che nel tuo workflow va bene
  4. Tab Audio:
    • Codec: AAC
    • Mixdown: Stereo
    • Sample Rate: 48 kHz
    • Bitrate: 128 kbps (96 kbps per fallback)
  5. Se devi creare più qualità: Tab Dimensions e imposta la risoluzione (720p/480p/360p).
  6. Salva con naming chiaro (es. canale_720p50_main.mp4).
  7. Start Encode. Ripeti per ogni rendition.
Nota importante su “Profile: Main” in HandBrake
Non tutte le versioni/preset espongono in modo diretto “Main profile” e parametri avanzati (level/GOP). Se ti serve controllo rigoroso: usa Shutter Encoder o FFmpeg.

3) Opzione B: Shutter Encoder (FREE, ottimo per batch)

Ideale per: conversioni in batch e settaggi più espliciti rispetto a molte GUI.

Shutter Encoder: passo per passo (Main + ladder)
  1. Apri Shutter Encoder - trascina dentro il file MP4.
  2. Choose function: seleziona H.264.
  3. Container: MP4.
  4. Video:
    • Profile: Main (se disponibile)
    • Pixel format: yuv420p
    • Frame rate: coerente (25/50)
    • GOP / Keyframes: 2 secondi (se l’opzione è presente)
    • Bitrate: imposta quello della rendition (es. 3000 kbps per 720p)
  5. Audio:
    • Codec: AAC
    • 48 kHz, Stereo
    • Bitrate: 128 kbps (o 96 kbps per fallback)
  6. Esporta 2–4 renditions: 1080p/720p/480p/360p.
  7. Start function.

4) Opzione C: Avidemux (FREE, semplice per “fix/remux”)

Ideale per: fix rapidi o re-encode basilari.

Avidemux: workflow base
  1. Apri il file in Avidemux.
  2. Video Output: x264
  3. Audio Output: AAC
  4. Output Format: MP4 Muxer
  5. Se disponibile, imposta profilo Main e salva in MP4.

5) Opzione D: FFmpeg (FREE, massimo controllo)

Ideale per: controllo totale e automazioni.

FFmpeg: esempio 720p50 (Main, GOP stabile)
ffmpeg -i input.mp4 \
-c:v libx264 -profile:v main -level:v 3.1 -pix_fmt yuv420p \
-r 50 -g 100 -keyint_min 100 -sc_threshold 0 \
-b:v 3000k -maxrate 3000k -bufsize 6000k \
-c:a aac -profile:a aac_low -ar 48000 -ac 2 -b:a 128k \
-movflags +faststart \
output_720p50_main.mp4
FFmpeg: esempio 480p25 (fallback)
ffmpeg -i input.mp4 \
-c:v libx264 -profile:v main -level:v 3.1 -pix_fmt yuv420p \
-r 25 -g 50 -keyint_min 50 -sc_threshold 0 \
-vf "scale=-2:480" \
-b:v 1100k -maxrate 1100k -bufsize 2200k \
-c:a aac -profile:a aac_low -ar 48000 -ac 2 -b:a 96k \
-movflags +faststart \
output_480p25_main.mp4

6) Verificare il risultato (MediaInfo)

Verifica ogni MP4 con MediaInfo (gratuito). Controlla:

Cosa devi vedere
  • Format: AVC (H.264)
  • Format profile: Main
  • Format level: coerente (es. 3.1 per 720p50)
  • Chroma: 4:2:0 (yuv420p)
  • Audio: AAC LC, 48.0 kHz, 2ch

7) Bitrate/qualità consigliati (ABR ladder)

Ladder semplice e robusta (valori indicativi):

Rendition Risoluzione / FPS Video bitrate Audio Note
Alta 1080p25 4500 kbps 128 kbps Level 4.0/4.1 in base a fps/encoder
Main 720p50 2500–3500 kbps 128 kbps Profilo molto usato in live su TV
Fallback 480p25 900–1400 kbps 96 kbps Ottimo su reti deboli
Bassa 360p25 600–900 kbps 64–96 kbps Ultimo fallback
 
Consiglio operativo
 
Se hai dubbi: parti con 720p + 480p. Poi aggiungi 1080p e 360p.

8) Playlist SMIL: preparare i file + template

Una volta generate le renditions, caricale sul server/origin e referenziale nel file .smil. Il parametro system-bitrate aiuta il player a scegliere la qualità corretta.

Template SMIL (multi-bitrate MP4)
<?xml version="1.0" encoding="UTF-8"?>
<smil>
  <head>
    <meta name="title" content="mychannel"/>
  </head>
  <body>
    <switch>
      <video src="mp4:mychannel_1080p25_main.mp4" system-bitrate="4628000" />
      <video src="mp4:mychannel_720p50_main.mp4"  system-bitrate="3128000" />
      <video src="mp4:mychannel_480p25_main.mp4"  system-bitrate="1196000" />
      <video src="mp4:mychannel_360p25_main.mp4"  system-bitrate="796000"  />
    </switch>
  </body>
</smil>
Come calcolare system-bitrate
(video_kbps + audio_kbps) × 1000. Esempio: 3000 + 128 = 3128 kbps ? 3128000.

9) Best practice HbbTV/Smart TV

  • Parametri “standard”: Main, yuv420p, GOP stabile.
  • Audio AAC-LC 48 kHz su tutte le qualità.
  • Evita picchi di bitrate eccessivi.
  • Testa almeno 1 Samsung e 1 LG prima di distribuire.

10) Troubleshooting

Il TV non parte / buffering infinito

  • Controlla con MediaInfo che sia davvero Main (non Baseline/High).
  • Verifica yuv420p (4:2:0).
  • Riduci bitrate per isolare problemi di rete vs codec.
  • Assicurati che i keyframe siano regolari (2s).

Audio ok ma video no (o viceversa)

  • Audio: AAC-LC 48 kHz stereo.
  • Video: profilo/level coerenti con risoluzione/fps.

Switch ABR instabile

  • Keyframe allineati tra renditions (GOP identico).
  • Frame rate coerente tra renditions quando possibile.

 

Hai trovato utile questa risposta? 0 Utenti hanno trovato utile questa risposta (0 Voti)