Pregunta

Estoy escribiendo una aplicación que exporta el video que he capturado (PAL SDI). El espacio de color original es Uyvy (4: 2: 2). Cuando convierta los marcos con SWSCALE a 4: 2: 0 y codifique con AVCODEC, obtenga el sangrado de color entre los campos. Sospecho que esto es de SWSCALE, sin ser consciente del marco que se está entrelazado. Aquí hay un ejemplo de una parte de un marco bob-deinterlicado de mi video exportado que muestra uno de los campos:

Color sangrado entre campos

Como puede ver, el color sangra del otro campo. ¿Cómo sigo sucediendo esto? He mirado la biblioteca y traté de encontrar algo en Swscale que le dice que respete los campos, pero no he encontrado nada.

Al almacenamiento de cada campo en buffers separados, para que pueda procesar los campos individualmente de la mano si eso lo ayudaría.

Agradecido por cualquier ayuda en esto!

Saludos Carl

Editar: Básicamente, lo que quiero es emitir PAL DV. Sospecho que SWSCALE es capaz de producir de alguna manera este tipo de entrelazado 420, ya que FFMPEG (la aplicación) puede manejar esto (creo).

¿Fue útil?

Solución

La respuesta es hacer dos operaciones de SWSCALE, una para cada campo.Puede engañar a SWSCALE para usar el mismo búfer especificando la mitad de la altura con doble paso y luego compensando la segunda operación por una línea.

Finalmente recibí la respuesta de la lista de usuarios de Libav.El código de ejemplo se puede encontrar en MPlayer / libmpcodecs / vf_scale.c y libavfilter / vf_scale.c

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top