ffmpeg : 스트림 0에 대한 코덱 매개 변수를 찾을 수 없습니다 (비디오 : h264) 지정되지 않은 크기 그림 참조). 이 문제를 해결할 방법이 있습니까? 내가

비디오를 .raw에서 .mp4로 변환하려고합니다. 이런 이유로 x264와 ffmpeg를 모두 다운로드, 빌드 및 설치했습니다. 그러나 다음 명령을 입력하십시오.

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

오류와 함께 실패합니다 (아래 그림 참조). 이 문제를 해결할 방법이 있습니까?

여기에 이미지 설명을 입력하십시오

내가 실행하는 명령 :

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


답변

입력 내용은 단순히 h264 스트림이 아니지만 ffmpeg에게 하나라고 알려줍니다.

ffmpeg에 실제로 무엇이 있는지 알려줘야합니다 v4l2-ctl --list-formats. ffmpeg가 그것을 h264로 트랜스 코딩하기를 원한다면 그것도 알려야합니다.

입력이 원시 YUYV 프레임 인 경우 다음을 원합니다.

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

640×480 및 25를 비디오의 크기 및 프레임 속도로 바꿉니다.

입력이 MJPEG 인 경우 -f, ffmpeg를 생략 할 수 있어야합니다 .

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

또한 다른 캡처 도구가 필요하지 않습니다. ffmpeg는 v4l2 장치에서 잘 캡처 할 수 있습니다.

ffmpeg -f v4l2 -r 25 -s:v 640x480 -i /dev/video0 -c:v libx264 output.mp4