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 2014

お返事をありがとうございます。上記で編集したように、両方の出力はまったく同じです。エンコーディング、またはビデオのキャプチャ中のファイルに問題があると思いますか?
2014

どこoutput.rawから来て、どのように作成しましたか?
slhck 2014

を実行する./capture -f -c 100 -o > output.raw。linuxtv.org/downloads/v4l-dvb-apis/capture-example.htmlからダウンロードしたcapture.c
2014

回答:


0

あなたの入力は単にh264ストリームではありませんが、ffmpegにそれを伝えています。

ffmpegにそれが何であるかを伝える必要があります:mjpegまたはyuyv形式のv4l2ストリーム(キャプチャ時にカメラがどの形式に設定されたかに応じて、2つのうちの2つがリストされます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.