ffmpeg : 스트림 0에 대한 코덱 매개 변수를 찾을 수 없습니다 (비디오 : h264) 지정되지 않은 크기


9

비디오를 .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

ffmpeg -i output.raw변환하려고한다고 가정하면 이 출력을 게시 할 수 있습니까 output.raw? 또한 ffmpeg -i output.raw -vcodec libx264 -pix_fmt yuv420p output.mp4콘솔 출력이 무엇입니까?
Rajib

답장을 보내 주셔서 감사합니다. 위의 편집에서 두 출력은 모두 동일합니다. 비디오를 캡처하는 동안 인코딩 또는 파일에 문제가 있다고 생각하십니까?
dempap

어디서 왔으며 output.raw어떻게 만들었습니까?
slhck February

를 실행하여 ./capture -f -c 100 -o > output.raw. capture.c는 linuxtv.org/downloads/v4l-dvb-apis/capture-example.html 에서 다운로드 했습니다 .
dempap

답변:


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

640x480 및 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.