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