[Resumen] Ffplay detallado de la herramienta de línea de comandos FFMPEG

Detailed Ffplay Ffmpeg Command Line Tool

Tabla de contenido

0 Prólogo



1 sintaxis



2 Descripción Descripción



3 opciones

3.1 Especificadores de flujo

3.2 Opciones genéricas



3.3 Opciones principales

3.3.1 -x ancho

3.3.2 -y height

3.3.3 -s tamaño

3.3.4 -fs

3.3.5 - izquierda x pos

3.3.6 -top y pos

3.3.7 título de la ventana window_title

3.3.8 -nodisp

3.3.9 -nofrontera

3.3.10 -ss pos

3.3.11 -t duración

3.3.12 -volumen volumen

3.3.13 -an

3.3.14 -vn

3.3.15 -sn

3.3.16 recuento de bucles

3.3.17 -bytes val

3.3.18 modo show mode

3.3.19 -f fmt

3.3.20 -seek_interval

3.3.21 -vf filtergraph

3.3.22 -de filtergraph

3.3.23 -i input_url

3.4 Opciones avanzadas Opciones principales

3.4.1 -autoexit

3.4.2 -exitonkeydown

3.4.3 -exitonmousedown

3.4.4 -autorotación

3.4.5 formato -pix_fmt

3.4.6 -codec: media_specifier codec_name

3.4.7 -acodec nombre_decodificador

3.4.8 -scodec nombre_decodificador

3.4.9 -vcodec nombre_decodificador

3.4.10 -vst especificador_flujo

3.4.11 -astor especificador_flujo

3.4.12 -sst especificador_corriente

3.4.13 -rápido

3.4.14 -genptos

3.4.15 -drp

3.4.16-tipo de sincronización

3.4.17 -encuadre

3.4.18 -infbuf

3.4.19 -find_stream_info

3.4.20-estadísticas

4 Control de teclas durante la reproducción Durante la reproducción



ffplay es un reproductor multimedia simple y portátil para ffmpeg, que utiliza la biblioteca ffmpeg y la biblioteca SDL. La mayoría de las veces se usa para probar la API de ffmpeg.

3 opciones


Todas las opciones numéricas, si no se especifica lo contrario, aceptan una cadena para reemplazar el número como entrada, generalmente seguida de una unidad SI, como 'K', 'M', 'G'.

Si aparece 'i' después de la unidad SI, el tamaño del número se interpretará como basado en 1024 en lugar de 1000. Si aparece 'B' después de la unidad SI, entonces el valor se multiplicará por 8. 'KB', 'MiB' , 'G' y 'B' aparecerán como sufijos digitales.

Las opciones sin parámetros son opciones bool y los parámetros relacionados se establecerán en verdadero. Los parámetros relacionados se pueden establecer en falso agregando un 'no' delante de la opción correspondiente. Por ejemplo, el uso de la opción '-nofoo' hará que el parámetro establecido por la opción '-foo' sea falso.

3.1 Especificadores de flujo


Se pueden aplicar algunas opciones a cada flujo. El especificador de flujo se utiliza para especificar exactamente a qué flujo se aplica la opción.

El especificador de flujo es generalmente una cadena que sigue a las opciones, separadas por ':'. Por ejemplo, '-codec: a: 1 ac3' contiene el especificador de flujo a: 1, que coincide con el segundo flujo de audio. Entonces, la función es usar el códec ac3 para el segundo flujo de audio.

Un especificador de transmisión puede hacer coincidir varias transmisiones, por lo que se pueden aplicar opciones a estas múltiples transmisiones. Por ejemplo, el especificador de transmisión en '-b: a 128k' coincide con todas las transmisiones de audio.

Un especificador de flujo vacío coincide con todos los flujos. Por ejemplo, -codec copy o -codec: copy coincidirá con todas las secuencias.

Posibles formatos para el especificador de flujo:

  • stream_index coincide con el número de secuencia de la secuencia. Por ejemplo, -threads: 1 4 establecerá el número de subprocesos que procesan el segundo flujo en 4. Si stream_index se usa para el parámetro adicional del especificador, entonces se seleccionará el flujo con el número de secuencia correspondiente que coincida
  • stream_type [: additional_stream_specifier] stream_type se refiere a: 'a' para el tipo de transmisión de audio, 's' para el tipo de transmisión de subtítulos, 'd' para el tipo de transmisión de datos, 't' para el tipo adicional y 'v' o 'V' para el video tipo de transmisión, la 'v' pequeña coincide con todas las transmisiones de video, la 'V' grande solo coincide con imágenes no adjuntas, miniaturas de video y carátulas artísticas. Cuando se usa additional_stream_specifier, coincidirá con un solo flujo del mismo tipo: índice. Si no se utiliza additional_stream_specifier, coincidirá con todos los flujos del mismo tipo.
  • p: program_id [: additional_stream_specifier] coincide con la secuencia correspondiente a la identificación del programa.
  • #stream_id o i: stream_id El flujo coincidente pasa el ID del flujo (como PID en el contenedor MPEG-TS)
  • m: clave [: valor] La secuencia que contiene el valor especificado en la etiqueta correspondiente (clave) en los metadatos de la secuencia coincidente. Si no se proporciona el valor, haga coincidir todas las secuencias que contengan la etiqueta especificada
  • u Para hacer coincidir las transmisiones con las configuraciones disponibles, se debe definir un códec y se debe proporcionar información básica como las dimensiones del video o la frecuencia de muestreo de audio.

Tenga en cuenta que la coincidencia de meatdata en ffmpeg solo funcionará correctamente para los archivos de entrada.

3.2 Opciones genéricas


Ver la sección de opciones generales documentación ffplay así como también [Resumen] Explicación detallada de ffprobe de la herramienta de línea de comandos FFMPEG

3.3 Opciones principales


3.3.1 -x ancho

func: forzar ancho mostrado

ejemplo: La resolución del video 1.mp4 es de 1280x720. Intente establecer el ancho en 500 1280 1500 respectivamente, el video se muestra a continuación:

ffplay -i 1.mp4 -x 500

ffplay -i 1.mp4 -x 1280

ffplay -i 1.mp4 -x 1500

En el caso de solo configurar el ancho, el ancho del video se muestra de acuerdo con el tamaño establecido, y el video se escalará en consecuencia para mantener la pantalla de relación de aspecto DAR 16: 9.

3.3.2 -y height

func: fuerza mostrada altura

ejemplo: De acuerdo con la lógica del parámetro -x, cuando solo se establece el parámetro -y, el parámetro -y se establece en 500, 720, 900 respectivamente, y la conclusión extraída es similar a 1.1.1, por lo que no se producirá el mismo efecto ser utilizado aquí Publique imágenes para ahorrar espacio.

Nota: intente establecer -x -y al mismo tiempo para ver qué imagen se generará

Parámetros de prueba: la relación de aspecto es mayor que la relación de aspecto original, la relación de aspecto es igual a la relación de aspecto original y la relación de aspecto es menor que la relación de aspecto original.

ffplay -i 1.mp4 -x 1000 -y 300 -título_ventana '1000x300'

ffplay - i 1.mp4 -x 640 -y 360 -título_ventana '640x360'

ffplay - i 1.mp4 -x 640 -y 500 -título_ventana '640x500'

PD: De acuerdo con este conjunto de datos de prueba, el tamaño de la ventana se mostrará de acuerdo con el tamaño especificado por -x -y, pero si la relación entre los dos no es proporcional al ancho y alto del video original, entonces Habrá bordes izquierdo y derecho, o negros en la parte superior e inferior, en el medio. El video seguirá mostrándose normalmente de acuerdo con la relación que se muestra en DAR (relación de aspecto de la pantalla).

3.3.3 -s tamaño

func: establecer el tamaño del marco (WxH o abreviatura), necesario para videos que no contienen un encabezado con el tamaño del marco como YUV sin formato. Esta opción ha quedado obsoleta en favor de las opciones privadas, intente -video_size.

ejemplo: Este comando establece el ancho y el alto al mismo tiempo, pero el resultado de la ejecución es sorprendente, lo que sugiere que el parámetro -s ha quedado obsoleto, utilice -video_size y luego envíe el mensaje de que el parámetro -vide_size no existe.

Pero al buscar ffplay -h output se puede encontrar -video_size, como se muestra en la siguiente figura:

Así que ejecuté ffplay -i 1.mp4 -video_size 1200x400, y todavía no pude encontrar -video_size. ¿Es esto un error?

3.3.4 -fs

fuc: Comience en modo de pantalla completa.

ejemplo: La ventana de video se mostrará en pantalla completa y la barra de título del formulario se ocultará. Si la relación de aspecto del monitor de la computadora no coincide con el DAR del video en sí, también aparecerán bordes negros en el formulario. Mi computadora es un monitor 16: 9 y el DAR del archivo multimedia de prueba 1.mp4 también es 16: 9, por lo que este video se muestra en pantalla completa sin bordes negros. Como se muestra abajo

3.3.5 - izquierda x pos

fuc: Establezca la posición x para la izquierda de la ventana (la predeterminada es una ventana centrada).

ejemplo: Establezca la coordenada horizontal inicial de la ventana del reproductor en la pantalla de la computadora, en píxeles.

3.3.6 -top y pos

fuc: establece la posición y para la parte superior de la ventana

ejemplo: Establezca la coordenada vertical inicial de la ventana del reproductor en la pantalla de la computadora en píxeles.

Ejemplo: ffplay -i 1.mp4 -left 100 -top 100

La posición de visualización inicial de la ventana del reproductor se mostrará a una distancia de 100 píxeles desde la esquina superior izquierda de la pantalla. No hay mucho de qué hablar aquí, de hecho, se trata de controlar la posición de un formulario en la pantalla de la computadora. Cuando -left -top se establece en un valor diferente, hará que el formulario se muestre de forma incompleta en la pantalla o no se muestre en absoluto. Las personas que han desarrollado interfaces son fáciles de entender, por lo que no las repetiré aquí.

3.3.7 título de la ventana window_title

func: Establecer el título de la ventana (el nombre predeterminado es el nombre del archivo de entrada).

ejemplo: ffplay -i 1.mp4-título_ventana '600x300'

Establezca el nombre para mostrar de la barra de título del formulario. Si no se establece, la barra de título del formulario predeterminada es el nombre del archivo. Ver 3.3.2 para el efecto

3.3.8 -nodisp

func: deshabilitar la pantalla gráfica

ejemplo: ffplay -i 1.mp4 -nodisp

La ventana estará oculta, pero el sonido se puede reproducir normalmente.

3.3.9 -nofrontera

func: ventana sin bordes

ejemplo: ffplay -i 1.mp4 -noborder

El formulario se muestra sin bordes, el efecto es como se muestra a continuación

3.3.10 -ss pos

func: Busque pos. Tenga en cuenta que en la mayoría de los formatos no es posible buscar exactamente, por lo que ffplay buscará al punto de búsqueda más cercano a la pos.

ejemplo: ffplay -i 1.mp4 -ss 12

Salte a la posición pos para comenzar a jugar, unidad s. Sin embargo, dado que la mayoría de los formatos de archivo no pueden admitir saltos precisos, ffplay saltará al punto de acceso aleatorio (es decir, la posición del fotograma clave) más cercano a pos. Por ejemplo, el ejemplo quiere saltar a 12 segundos para comenzar a jugar, pero de hecho, el tiempo de reproducción es 10.11 segundos, como se muestra en el área rectangular roja en la esquina inferior izquierda.

Utilice la herramienta Elecard Stram Eye para ver este archivo de video, encontrará que hay un fotograma clave en la posición de 10.00 s, hay un fotograma clave en la posición de 15 s, el más cercano a 12 es el fotograma clave de 10 s, por lo que saltará al inicio del fotograma clave de 10s Play. De hecho, si la posición de salto no supera los 15, siempre empezará a jugar desde los 10s, y si supera los 15, empezará a jugar desde los 15s.

3.3.11 -t duración

func: reproducir segundos de 'duración' de audio / video

ejemplo: ffplay -i 1.m4 -ss 14 -t 10

Generalmente se usa con ss, lo que significa que comienza a reproducirse desde la posición 14 y termina en 10. Pero sabemos que la inexactitud de ss hace que el video comience a reproducirse desde los 10, por lo que el video se reproduce hasta el final de los 24 esperados. ¿O realmente está jugando el reloj de los 10 y terminando en la posición de los 20? Ven, veamos el efecto

Comienza la reproducción de video

Fin de la reproducción de video

Nota: A partir de la operación real, se encontrará que la hora de inicio de la reproducción de video calculará la hora de finalización de la reproducción de video de acuerdo con el parámetro -t, y la reproducción se detendrá en este momento en lugar de calcular realmente cuánto tiempo ha estado en reproducción. el proceso de reproducción y luego decidir si reproducirlo de acuerdo con la duración de reproducción establecida. detener.

3.3.12 -volumen volumen

func: Configura el volumen de inicio. 0 significa silencio, 100 significa que no hay reducción de volumen ni amplificación. Los valores negativos se tratan como 0, los valores superiores a 100 se tratan como 100.

ejemplo: ffplay -i 1.mp4 -volumen 50

Establezca el volumen inicial al reproducir, esto parece no tener nada que decir, pero debe tenerse en cuenta que no importa cuán grande sea este valor, el volumen máximo del reproductor está predeterminado en el volumen del sistema.

el volumen está ajustado a 2

el volumen está ajustado a 100

3.3.13 -an

func: desactivar el audio

ejemplo: ffplay -i 1.mp4 -an

El video se reproduce normalmente, no hay sonido y el efecto es el mismo que -volumen 0, pero el real es inconsistente. -an no debe decodificar el audio, y -volumen 0 los datos de audio deben continuar decodificándose.

3.3.14 -vn

func: deshabilitar video

ejemplo: ffplay -i 1.mp4 -vn

El audio se reproduce normalmente, el video no se decodifica, pero la ventana de reproducción seguirá apareciendo y la interfaz se representa de la siguiente manera

Extraño ~~ ¿Por qué no es negro puro? ¿Qué muestra esto? Consulte la explicación de -showmode.

3.3.15 -sn

func: deshabilitar los subtítulos

ejemplo: ffplay -i 1.mp4 -sn

Desactiva los subtítulos.

3.3.16 recuento de bucles

func: Repite los tiempos de reproducción de películas. 0 significa para siempre.

ejemplo: ffplay -i 1.mp4 -loop 2 -ss 10 -t 5

El bucle se utiliza para controlar el número de bucles. El efecto del comando de apelación es comenzar a reproducir desde los 10 del video, reproducir durante 5 segundos y luego comenzar a reproducir desde los 10 segundos y finalizar la reproducción después de los 5 segundos.

3.3.17 -bytes val

func: buscar por bytes 0 = desactivado 1 = activado -1 = automático

ejemplo: ffplay -i 1.mp4 -bytes 1

Este parámetro se utiliza para controlar si puede buscar según el número de bytes. 0 significa no, 1 significa sí y -1 significa automático. No está claro qué significa auto.

Nota: Los archivos mp4 no se pueden buscar por bytes, por lo que cuando la búsqueda de bytes está habilitada, presione las teclas izquierda y derecha, ffplay mostrará el siguiente mensaje de error '1.mp4: error al buscar'.

3.3.18 modo show mode

func: “Configure el modo de presentación que se utilizará. Los valores disponibles para el modo son: '0, video' muestra el video '1, las ondas' muestran las ondas de audio '2, rdft' muestran la banda de frecuencia de audio usando RDFT (Transformada de Fourier Real Discreta (Inversa)). El valor predeterminado es 'video', si el video no está presente o no se puede reproducir, se selecciona automáticamente 'rdft'. Puede alternar interactivamente entre los modos de presentación disponibles presionando la tecla w '.

ejemplo: -showmode Esta opción puede controlar el modo de visualización del reproductor. -showmode 0 significa mostrar video, -showmode 1 significa mostrar forma de onda de audio, -showmode 2 significa mostrar ancho de banda de audio (transformada discreta de Fourier en tiempo real). El video se muestra de forma predeterminada. Cuando la transmisión de video no existe o no se puede mostrar, cambiará automáticamente para mostrar rdft (esta es la razón por la que la interfaz del reproductor no se muestra en negro cuando se usa -vn). Cuando ffplay reproduce un video, puede controlar el cambio de modo de visualización presionando la tecla w.

ffplay -i 1.mp4 -x 640 -y 360 -showmode 0

ffplay -i 1.mp4 -x 640 -y 360 -showmode 1

ffplay -i 1.mp4 -x 640 -y 360 -showmode 2

3.3.19 -f fmt

func: formato de fuerza

ejemplo: ffplay -i 1.mp4 -f mov

Este parámetro está obligado a analizar el archivo de acuerdo con el formato fmt. Si se analiza de acuerdo con el formato de adaptación 1.MP4 mov m4a 3gp 3g2 mj2, el archivo se puede reproducir normalmente.

Si se analiza de acuerdo con el formato flv, mpegts, informará diferentes mensajes de error:

3.3.20 -seek_interval

func: Configure el intervalo personalizado, en segundos, para buscar usando las teclas izquierda / derecha. El valor predeterminado es 10 segundos.

ejemplo: Esta opción se usa para controlar el intervalo de salto cuando se reproduce el video, y los botones izquierdo y derecho controlan el salto. El valor predeterminado es 10 segundos, es decir, haga clic con el botón derecho y el video salta a la posición después de 10 segundos. Sin embargo, en el proceso de medición real, se encuentra que la versión 4.1 de ffplay no tiene esta opción. Es posible que se hayan eliminado las opciones relevantes en esta versión y que la documentación de ayuda de ffplay no se haya modificado.

3.3.21 -vf filtergraph

func: Cree el gráfico de filtro especificado por gráfico de filtro y utilícelo para filtrar la transmisión de video.

filtergraph es una descripción del filtergraph que se aplicará a la transmisión y debe tener una sola entrada de video y una sola salida de video. En el gráfico de filtro, la entrada se asocia a la etiqueta in y la salida a la etiqueta out. Consulte el manual de filtros ffmpeg para obtener más información sobre la sintaxis del gráfico de filtro.

Puede especificar este parámetro varias veces y recorrer los gráficos de filtro especificados junto con los modos de presentación presionando la tecla w.

ejemplo: ffplay -i 1.mp4 -vf 'corte = 100: 100: 100: 100' -vf 'corte = 200: 200: 200: 200'

De acuerdo con la explicación de la opción -vf, el resultado debe ser: mostrar el video en la posición (100, 100) ancho y alto de 100 -> presione la tecla w para cambiar para mostrar el ancho de la posición (200, 200) y altura de 200 video (corte El filtro es un video cortado) -> Presione la tecla w para cambiar a la forma de onda de audio -> Presione la tecla w para cambiar al espectro de audio (RDFT) -> Bucle. La prueba real es: mostrar el video en la posición (100, 100) de ancho y alto de cada video de 100 -> sin cambios -> presione la tecla w para cambiar a la forma de onda de audio -> presione la tecla w para cambiar al espectro de audio (RDFT) -> bucle. De hecho, el efecto del segundo filtro no está presente, ¿puede ser un error? ? ? ?

3.3.22 -de filtergraph

func: filtergraph es una descripción del filtergraph que se aplicará al audio de entrada. Utilice la opción '-filtros' para mostrar todos los filtros disponibles (incluidas las fuentes y los receptores).

ejemplo: No se como presentarlo ~~

3.3.23 -i input_url

func: Leer input_url.

ejemplo: Especifique la URL del archivo de entrada. El archivo de entrada puede ser un archivo local, una tubería o un flujo de red. Por ejemplo, ffplay -i rtmp: //wangsu.xescdn.com/live_bak/x_3_0_0 es el flujo de red en tiempo real de rtmp.

3.4 Opciones avanzadas Opciones principales


3.4.1 -autoexit

func: Salga cuando termine de reproducirse el video.

ejemplo: ffplay -i 1.mp4 -t 5 -autoexit

Una vez que este comando controla la reproducción del video durante 5 segundos, la ventana de reproducción se cierra automáticamente. Tenga en cuenta que una vez finalizada la reproducción de ffplay, el valor predeterminado es permanecer en el último fotograma.

3.4.2 -exitonkeydown

func: salir con la tecla abajo

ejemplo: ffplay -i 1.mp4 -exitonkeydown

Este comando hace que el formulario de reproducción de video ffplay salga después de presionar cualquier tecla en el teclado

3.4.3 -exitonmousedown

func: salir con el mouse hacia abajo

ejemplo: ffplay -i 1.mp4 -exitonmousedown

Este comando hace que el formulario de reproducción de video ffplay salga de la reproducción cuando se presiona el botón izquierdo del mouse, el desplazamiento central (no se desplaza, pero se presiona) y el botón derecho.

3.4.4 -autorotación

func: rotar video automáticamente

ejemplo: ffplay -i 1.mp4 -autorotate

No hay ningún efecto especial, ¿por qué? Mira la explicación de este parámetro en la documentación de ffplay:

“Gire automáticamente el video de acuerdo con los metadatos del archivo. Habilitado de forma predeterminada, use -noautorotate para deshabilitarlo '.

La idea principal es: el video determinará el efecto de rotación automática de acuerdo con la información de metadatos del archivo, es decir, si los metadatos del archivo no contienen información de rotación de video, la configuración de este parámetro no tiene ningún efecto. Si hay información de rotación, este parámetro hará que el video gire automáticamente de acuerdo con la información en los metadatos al reproducir el video. Por supuesto, este parámetro tendrá efecto de forma predeterminada sin configurar este parámetro. Para que sea ineficaz, puede utilizar el parámetro -noautorotate.

1. Para probar este efecto, primero usamos ffmpeg -i 1.mp4 -metadata: s: v rotate = '90 '-codec copy 2.mp4, y obtenemos un video rotado 2.mp4

Como se muestra arriba, la rotación del archivo 2.mp4 es 270, obviamente configuré 90, ¿es porque rotate = '90 'hace que el video gire 90 grados en sentido antihorario, lo que equivale a 270 grados en el sentido de las agujas del reloj?

2. Use ffplay -i 2.mp4 -x 360 -y 640 para ver la rotación del video durante la reproducción: Efectivamente, el video se gira 90 grados en sentido antihorario ~, y tenga en cuenta que el video en sí es 1280x720, y el ancho y la altura se reemplaza después de la rotación. Configure -x 360 -y 640 para asegurarse de que la escala de la ventana sea consistente con el video sin dejar bordes negros

3. Usando ffplay -i 2.mp4 -x 640 -y 360 -noautorotate, el video se puede reproducir 'correctamente' nuevamente. Tenga en cuenta la diferencia entre -x 640 -y 360 y lo anterior

3.4.5 formato -pix_fmt

func: establecer formato de píxeles

ejemplo: ffplay -i 1.mp4 -pix_fmt yuv420p

La función de este parámetro es 'Establecer formato de píxel. Esta opción ha quedado obsoleta en favor de las opciones privadas, intente -pixel_format. ' Si convierte a chino, se entiende que establece el formato de píxel, pero se ha determinado el formato de píxel en el archivo, ¿la función es seguir este formato para analizar el formato de píxel almacenado en el archivo? El resultado de ejecutar este comando es:

Este es un parámetro que no se comprende. ? ? ? ?

3.4.6 -codec: media_specifier codec_name

func: Forzar una implementación de decodificador específica para el flujo identificado por media_specifier, que puede asumir los valores a (audio), v (video) y s subtitular

ejemplo: ffplay -i 1.mp4 -codec: v h264

Uso obligatorio de la implementación del decodificador h264 para lograr la decodificación del flujo de video 1.mp4.

Primero, use ffprobe -i 1.mp4 -hide_banner para saber que la velocidad de bits de video de este archivo está en formato H.264:

En segundo lugar, usando ffprobe -codecs -hide_banner | busque 'h264', podemos encontrar la implementación actual del decodificador h264 compatible con ffmpeg como h264, h264_qsv, h64_cuvid.

Finalmente, intentamos decodificar usando ffplay -i 1.mp4 -codec: v h264 o ffplay -i 1.mp4 -codec: v h264_qsv o ffplay -i 1.mp4 -codec: v h264_cuvid, y encontramos que los decodificadores h264 y Se utilizaron h264_qsv. Se puede decodificar, pero h264_cuvid no.

h264: decodificación suave de la CPU.

h264_qsv: Intel Quick Sync Video (QSV), que es la tecnología de decodificación de GPU de Intel

h264_cuvid: esta es la tecnología de decodificación de hardware de la tarjeta gráfica nvidia

La razón para encontrar este error en línea es que el controlador de la tarjeta gráfica NVIDIA no es el más reciente. Puede actualizar el controlador de la tarjeta gráfica para resolver este problema. Pero, de hecho, se encuentra que el controlador de la tarjeta gráfica local ya es el último, por lo que no se ha encontrado la razón por la que esta tarjeta n no se puede resolver con dificultad.

3.4. 7 -acodec nombre_decodificador

func: forzar decodificador de audio

3.4.8 -scodec nombre_decodificador

func: forzar decodificador de subtítulos

3.4.9 -vcodec nombre_decodificador

func: forzar decodificador de video

Los tres comandos anteriores son la descomposición de 1.3.3, por lo que no los repetiré aquí.

3.4.10 -vst especificador_corriente

func: seleccione la secuencia de video deseada

ejemplo: ffplay -i 1.mp4 -vst v: 0

Especifique el flujo de video que se decodificará, los otros flujos de bits toman el valor predeterminado y se decodifican normalmente juntos. Nota stream_specifier El formato es v: 0. Si especifica una transmisión que no existe, como 1.mp4 tiene solo una transmisión de video, entonces si especifica la transmisión de video como v: 1, entonces el video no se puede reproducir normalmente, pero las otras transmisiones no son un problema.

3.4.11 -astor especificador_flujo

func: seleccione la secuencia de audio deseada

3.4.12 -sst especificador_corriente

func: seleccione la secuencia de subtítulos deseada

Igual que 3.4.10, no entraré en detalles aquí, solo preste atención al audio y los subtítulos stream_specifier El formato es a: 0, s: 0, si hay 2 flujos de audio, entonces a: 1 también es válido.

3.4.13 -rápido

func: optimizaciones que no cumplen con las especificaciones

ejemplo: Este comando ha verificado la información durante mucho tiempo y no encontró una explicación adecuada. Solo se puede ver por el significado literal: 'optimización de compilación no estándar'. A qué se refiere exactamente depende del análisis del código fuente. ¿Has visto el código fuente para llenar este agujero? ? ? ? ?

3.4.14 -genptos

func: generar pts

ejemplo: ffplay -i 1.mp4 -genpts

El comando literalmente significa generar pts, pero no es diferente de no agregar este parámetro. El tiempo de reproducción es el primer parámetro generado por ffplay. ¿Has visto el código fuente para llenar este agujero? ? ? ? ?

3.4.15 -drp

func: permite que el decodificador reordene los pts 0 = desactivado 1 = activado -1 = automático

ejemplo: ¿Has visto el código fuente para llenar este agujero? ? ? ? ?

3.4.16 -tipo de sincronización

func: “Configure el reloj maestro en audio (type=audio), video (type=video) o externo (type=ext). El valor predeterminado es audio. El reloj maestro se utiliza para controlar la sincronización de audio y video. La mayoría de los reproductores multimedia utilizan audio como reloj maestro, pero en algunos casos (transmisión o transmisión de alta calidad) es necesario cambiar eso. Esta opción se utiliza principalmente con fines de depuración '.

ejemplo: Configure el reloj maestro para que sea el reloj de audio (type=audio), el reloj de video (type=video) o el reloj externo (type=ext). El reloj principal es principalmente para controlar la sincronización de la reproducción de audio y video. La mayoría de los reproductores utilizan el reloj de audio como reloj principal, pero en algunos casos, como la transmisión o la transmisión de alta calidad, se utilizan otros métodos de sincronización. El parámetro -sync de ffplay se utiliza principalmente con fines de depuración.

3.4.17 -encuadre

func: Elimina fotogramas de video si el video no está sincronizado. Habilitado de forma predeterminada si el reloj maestro no está configurado para video. Use esta opción para habilitar la caída de fotogramas para todas las fuentes de reloj maestro, use -noframedrop para deshabilitarla.

ejemplo: ffplay -i 1.mp4 -framedrop Cuando el audio y el video no están sincronizados, el cuadro de video se eliminará. Cuando el reloj principal no es el reloj de video, esta función está habilitada por defecto. La función de este parámetro es habilitar la función de descartar cuadros de video cuando no están sincronizados independientemente del tipo de reloj principal. Puede utilizar -noframedrop para desactivar la función de descartar fotogramas de vídeo cuando el audio y el vídeo no están sincronizados.

3.4.18 -infbuf

func: No limite el tamaño del búfer de entrada, lea tantos datos como sea posible de la entrada lo antes posible. Habilitado de forma predeterminada para transmisiones en tiempo real, donde los datos pueden descartarse si no se leen a tiempo. Use esta opción para habilitar búferes infinitos para todas las entradas, use -noinfbuf para deshabilitarlo.

ejemplo: ffplay -i 1.mp4 -infbuf No limita el tamaño del búfer de entrada, deje que el reproductor lea los datos lo antes posible. Al reproducir una transmisión en tiempo real, como rtmp: // ip: puerto / nombre de la aplicación / nombre de la transmisión, esta función se activará de forma predeterminada. Si este no es el caso, los datos obtenidos estarán desactualizados porque los datos no son en tiempo real. tirar a la basura. Esta opción puede hacer que cada área de búfer de entrada sea ilimitada, puede usar -noinfbuf para desactivar esta función.  

3.4.19 -find_stream_info

func: leer y decodificar los flujos para completar la información faltante con heurística

ejemplo: ffplay -i 1.mp4 -find_stream_info

No vi si hay algún cambio en este parámetro con o sin, ¿esperar a ver el código fuente para llenar este hueco? ? ? ? ?

3.4.20-estadísticas

func: Imprima varias estadísticas de reproducción, en particular, muestre la duración de la transmisión, los parámetros del códec, la posición actual en la transmisión y la deriva de sincronización de audio / video. Está activado de forma predeterminada, para deshabilitarlo explícitamente debe especificar -nostats.

ejemplo: Imprima algunos resultados estadísticos de la reproducción, especialmente la longitud del flujo de visualización, los parámetros del codificador, la posición de reproducción actual en el flujo y el valor de compensación de sincronización de audio y video. Esta función está habilitada de forma predeterminada, si desea mostrar cerrado, use el parámetro -nostats

4 Control de teclas durante la reproducción Durante la reproducción

botón efecto
q, ESC Renunciar.
F Alternar pantalla completa.
p, SPC Pausa.
metro Alternar silencio.
9, 0 Disminuir y aumentar el volumen respectivamente.
/, * Disminuir y aumentar el volumen respectivamente.

a

Ciclo de canal de audio en el programa actual.
v Ciclo de canal de video.
t

Ciclo de canal de subtítulos en el programa actual.

c Programa de ciclo.
en Ciclo de filtros de video o modos de presentación.
s

Pase al siguiente cuadro.

Haga una pausa si la transmisión aún no está en pausa, pase al siguiente cuadro de video y haga una pausa.

izquierda derecha Busque hacia atrás / adelante 10 segundos.
abajo / arriba Busque hacia atrás / adelante 1 minuto.
página abajo / página arriba Busque el capítulo anterior / siguiente. o si no hay capítulos Busque hacia atrás / adelante 10 minutos.
clic derecho del mouse Busque el porcentaje en el archivo correspondiente a la fracción de ancho.
doble clic izquierdo del mouse Alternar pantalla completa.