ffmpeg: no se pudieron encontrar los parámetros del códec para la secuencia 0 (video: h264) tamaño no especificado


9

Intento convertir un video de .raw a .mp4. Por esta razón, descargué, compilé e instalé x264 y ffmpeg. Sin embargo, comando:

ffmpeg -f h264 -i output.raw -vcodec copy output.mp4

falla con error (se muestra en la imagen a continuación). ¿Hay alguna forma de arreglar esto?

ingrese la descripción de la imagen aquí

Comandos que también ejecuto:

1

root@beagleboard:/# v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUV 4:2:2 (YUYV)

        Index       : 1
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : MJPEG

2

root@beagleboard:/dev# v4l2-ctl --set-fmt-video=pixelformat=0

¿podría simplemente publicar el resultado de esto: ffmpeg -i output.rawsuponiendo que está tratando de convertir output.raw? Además, si intentas ffmpeg -i output.raw -vcodec libx264 -pix_fmt yuv420p output.mp4cuál es la salida de la consola?
— Rajib

Gracias por su respuesta. Ambas salidas son exactamente iguales, como se editó anteriormente. ¿Crees que hay un problema en la codificación o en el archivo al capturar video?
— Dempap

¿De dónde sacaste output.rawy cómo lo creaste?
— slhck

Al ejecutar ./capture -f -c 100 -o > output.raw. capture.c descargado de: linuxtv.org/downloads/v4l-dvb-apis/capture-example.html .
— Dempap

Respuestas:


0

Su entrada simplemente no es una transmisión h264, pero le está diciendo a ffmpeg que es una.

Debe decirle a ffmpeg qué es realmente: una transmisión v4l2 en formato mjpeg o yuyv (según el formato en el que se configuró su cámara en el momento de la captura, de los dos enumerados por v4l2-ctl --list-formats). Si desea que ffmpeg lo transcodifique a un h264, también debe decirle eso.

Si la entrada es cuadros YUYV sin procesar, desea:

ffmpeg -f rawvideo -pix_fmt yuyv422 -s:v 640x480 -r 25 -i output.raw -c:v libx264 output.mp4

Reemplace 640x480 y 25 con las dimensiones y la velocidad de fotogramas de su video.

Si la entrada es MJPEG, debería poder dejar de lado -fy ffmpeg debería resolverlo:

ffmpeg -i output.raw -c:v libx264 output.mp4

Por cierto, no necesita otra herramienta de captura; ffmpeg puede capturar desde dispositivos v4l2 muy bien:

ffmpeg -f v4l2 -r 25 -s:v 640x480 -i /dev/video0 -c:v libx264 output.mp4
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.