Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

VVC 2-pass encoding fails with current FFmpeg/libvvenc because FastFlix passes obsolete pass and rcstatsfile parameters via -vvenc-params

Abierto Apto para principiantes
#768 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
desktop, tooling

Línea de trabajo

Empieza en command_builder.py y encuentra la lógica de dos pasadas de VVC alrededor de get_vvc_params y pass_log_file. Verifica los comandos generados del modo de bitrate para ambas pasadas y después reproduce una codificación de dos pasadas de VVC/libvvenc; se considera terminado cuando pass y passlogfile se emiten como opciones del codificador en lugar de dentro de -vvenc-params y la codificación ya no falla en el frame 0.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

FastFlix version

FastFlix 6.x Windows packaged release

Operating system

Windows 10/11 x64

Description

VVC encoding works in QP/single-pass mode, but selecting bitrate mode causes the encode to fail immediately at frame 0.

FastFlix appears to generate VVenC two-pass parameters using:

-vvenc-params "pass=1:rcstatsfile=..."

and:

-vvenc-params "pass=2:rcstatsfile=..."

Current FFmpeg/libvvenc no longer accepts pass or rcstatsfile inside -vvenc-params.

FFmpeg reports:

[libvvenc] vvenc-params 2pass option 'pass' not available. Use option 'pass'
[libvvenc] vvenc-params 2pass option 'rcstatsfile' not available. Use option 'passlogfile'

The encoder then fails to initialize.

Error log
Stream mapping:

Stream #0:0 (hevc) -> scale:default

setsar:default -> Stream #0:0 (libvvenc)

Press [q] to stop, [?] for help

[libvvenc @ 00000137cf50f900] vvenc-params 2pass option 'pass' not available. Use option 'pass'

[libvvenc @ 00000137cf50f900] vvenc-params 2pass option 'rcstatsfile' not available. Use option 'passlogfile'

[vost#0:0/libvvenc @ 00000137cf50a780] [enc:libvvenc @ 00000137d16bc840] Error while opening encoder - maybe incorrect parameters such as bit_rate, rate, width or height.

[fc#0 @ 00000137cf4e45c0] Error sending frames to consumers: Invalid argument

[fc#0 @ 00000137cf4e45c0] Task finished with error code: -22 (Invalid argument)

[vost#0:0/libvvenc @ 00000137cf50a780] [enc:libvvenc @ 00000137d16bc840] Could not open encoder before EOF

[out#0/mp4 @ 00000137d14af440] Nothing was written into output file, because at least one of its streams received no packets.

frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A

Conversion failed!
Cause

The current VVC command builder appears to contain logic equivalent to:

params = get_vvc_params(
["pass=1", f"rcstatsfile={...}"]
)

and:

params2 = get_vvc_params(
["pass=2", f"rcstatsfile={...}"]
)

This results in the two-pass options being included in -vvenc-params.

With current FFmpeg/libvvenc, these are FFmpeg encoder options instead.

Expected command syntax

Pass 1 should use something equivalent to:

-c:v libvvenc -pass 1 -passlogfile "statsfile" -b:v

Pass 2:

-c:v libvvenc -pass 2 -passlogfile "statsfile" -b:v

pass= and rcstatsfile= should not be included in -vvenc-params.

Proposed FastFlix change

Instead of:

params = get_vvc_params(
["pass=1", f"rcstatsfile={quoted_path(clean_file_string(str(pass_log_file)))}"]
)

use:

params = get_vvc_params()

and change:

["-passlogfile", str(pass_log_file), "-b:v", settings.bitrate, ...]

to:

[
"-pass", "1",
"-passlogfile", str(pass_log_file),
"-b:v", settings.bitrate,
...
]

For the second pass:

params2 = get_vvc_params()

with:

[
"-pass", "2",
"-passlogfile", str(pass_log_file),
"-b:v", settings.bitrate,
...
]
Steps to reproduce
Open FastFlix.
Load a video.
Select VVC / libvvenc.
Select bitrate rather than QP so FastFlix performs a 2-pass encode.
Start the encode.
Encoding fails immediately at frame 0 with the pass / rcstatsfile errors above.
Additional note

Editing the loose command_builder.py under the packaged Windows _internal directory does not appear to affect the running packaged application, presumably because the executable is using the bundled Python module. The issue itself, however, is reproducible from the generated FFmpeg/libvvenc command.

Lenguaje dominante
Python
Estrellas
1.6k
Forks
78
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cdgriffith/FastFlix

Todos los issues de cdgriffith/FastFlix

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.