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що таке вихід консолі?
Раджиб

Дякуємо за Ваш відповідь. Обидва виходи абсолютно однакові, як відредаговано вище. Як ви вважаєте, чи є проблема в кодуванні чи у файлі під час зйомки відео?
dempap

Звідки ви взялися output.rawі як створили його?
slhck

Виконавши ./capture -f -c 100 -o > output.raw. capture.c завантажений з: linuxtv.org/downloads/v4l-dvb-apis/capture-example.html .
dempap

Відповіді:


0

Ваш вклад - це просто не потік h264, але ви скажете ffmpeg, що це один.

Вам потрібно сказати ffmpeg, що це насправді: потік v4l2 у форматі mjpeg або yuyv (залежно від того, для якого формату встановлено ваш фотоапарат під час зйомки, з двох, перелічених у списку 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.