Bitácora
← Blog

Problema de renderizado en Davinci Resolve

Guía de conversión de video (DaVinci Resolve → plataformas)

El problema reside en que Davinci Resolv en si version free no acepta NVENC y en linux no visualiza los videos y no se escucha el audio.

Flujo completo: exportar desde Resolve y convertir con ffmpeg a cada formato.


1. Exportar desde DaVinci Resolve (Deliver)

Configuración recomendada (evita el códec APV, que ni VLC ni las plataformas leen):

Opción Valor
Formato MP4
Códec video H.264
Códec audio AAC
Frecuencia 48 kHz estéreo
Calidad Automática / Alta

⚠️ El códec “DaVinci APV” (YUV 422 10-bit) sale muy pesado y no lo lee VLC ni TikTok/Instagram/YouTube. Úsalo solo como intermedio si vas a seguir editando.


2. Verificar el archivo exportado

ffprobe -hide_banner -show_format -show_streams "archivo.mp4"

Debes ver h264 en video y aac en audio. Si ves apv, usa una conversión de abajo.

Comprobar que decodifica sin errores (no imprime nada = OK):

ffmpeg -v error -i "archivo.mp4" -f null -

Medir el nivel de audio (¿tiene sonido real?):

ffmpeg -i "archivo.mp4" -af volumedetect -f null -

3. Conversiones por tipo de destino

Para volver a editar en Resolve Free / Linux (H.264 → DNxHR)

Resolve Free en Linux no decodifica H.264/AAC. Convierte a DNxHR (pesado, pero fluido):

ffmpeg -y -i "input.mp4" \
  -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p \
  -c:a pcm_s16le -f mov "output.mov"

Variante más ligera: -profile:v dnxhr_sq o dnxhr_lb.

TikTok (vertical 1080x1920, máx 60 s)

ffmpeg -y -i "input.mp4" \
  -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1" \
  -c:v libx264 -profile:v high -pix_fmt yuv420p -preset slow -crf 20 \
  -maxrate 8M -bufsize 16M -c:a aac -b:a 128k -ar 48000 -ac 2 \
  -movflags +faststart -t 60 "output_tiktok.mp4"

Instagram Reels (vertical, máx 90 s)

ffmpeg -y -i "input.mp4" \
  -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1" \
  -c:v libx264 -profile:v high -pix_fmt yuv420p -preset slow -crf 20 \
  -maxrate 8M -bufsize 16M -c:a aac -b:a 128k -ar 48000 -ac 2 \
  -movflags +faststart -t 90 "output_reels.mp4"

YouTube Shorts (vertical, máx 60 s, mejor audio)

ffmpeg -y -i "input.mp4" \
  -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1" \
  -c:v libx264 -profile:v high -pix_fmt yuv420p -preset slow -crf 18 \
  -maxrate 12M -bufsize 24M -c:a aac -b:a 192k -ar 48000 -ac 2 \
  -movflags +faststart -t 60 "output_shorts.mp4"

Horizontal genérico (VLC, web, WhatsApp)

ffmpeg -y -i "input.mp4" \
  -c:v libx264 -pix_fmt yuv420p -preset slow -crf 20 \
  -c:a aac -b:a 128k -movflags +faststart "output_horizontal.mp4"

Vertical SIN recortar (fondo desenfocado, se ve todo el 16:9)

ffmpeg -y -i "input.mp4" \
  -vf "split[a][b];[a]scale=1080:1920,boxblur=20:20[bg];[b]scale=1080:-2[fg];[bg][fg]overlay=(W-w)/2:(H-h)/2,setsar=1" \
  -c:v libx264 -pix_fmt yuv420p -preset slow -crf 20 \
  -c:a aac -b:a 128k -movflags +faststart "output_vertical_blur.mp4"

4. Tabla rápida de parámetros

Parámetro Valor Efecto
-crf 18 / 20 / 23 Calidad: alta / equilibrado / ligero (menor = más pesado)
-preset slow Más compresión a igual calidad (archivo más pequeño)
scale + setsar=1 1080:1920 Encuadre vertical 9:16 con píxeles cuadrados
-maxrate / -bufsize 8M/16M · 10M/20M Tope de bitrate (las plataformas recomprimen)
-movflags +faststart — Reproduce mientras descarga (subidas a plataformas)
-t 60 / 90 Corta a la duración máxima de cada plataforma
-ar 48000 -ac 2 — Fuerza audio 48 kHz estéreo

5. Versión en lote (toda una carpeta)

cd ~/Vídeos

# TikTok
for f in *.mp4; do
  ffmpeg -y -i "$f" -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1" \
    -c:v libx264 -profile:v high -pix_fmt yuv420p -preset slow -crf 20 -maxrate 8M -bufsize 16M \
    -c:a aac -b:a 128k -ar 48000 -ac 2 -movflags +faststart -t 60 "${f%.mp4} - tiktok.mp4"
done

# Reels
for f in *.mp4; do
  ffmpeg -y -i "$f" -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1" \
    -c:v libx264 -profile:v high -pix_fmt yuv420p -preset slow -crf 20 -maxrate 8M -bufsize 16M \
    -c:a aac -b:a 128k -ar 48000 -ac 2 -movflags +faststart -t 90 "${f%.mp4} - reels.mp4"
done

# Shorts
for f in *.mp4; do
  ffmpeg -y -i "$f" -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,setsar=1" \
    -c:v libx264 -profile:v high -pix_fmt yuv420p -preset slow -crf 18 -maxrate 12M -bufsize 24M \
    -c:a aac -b:a 192k -ar 48000 -ac 2 -movflags +faststart -t 60 "${f%.mp4} - shorts.mp4"
done

6. Notas propias de este equipo (Linux)

7. Comándos creados con fish

ffmpeg -y -i "input.mp4" \
  -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p \
  -c:a pcm_s16le -f mov "output.mov"