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
dempap
fuente
¿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
tgies
fuente