linux - Q.关于ffmpeg的编码错误

标签 linux ffmpeg raspberry-pi raspbian libx264

我运行了以下命令。

ffmpeg -i test.mp4 -threads 2 -codec:v libx264 -s:v 1280x720 -aspect:v 16:9 -b:v 256k -map 0 -f segment -segment_format mpegts -segment_time 10 -segment_list stream.m3u8 streamfiles/stream%03d.ts

执行结果
ffmpeg version N-75926-gce0834b Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.6 (Debian 4.6.3-14+rpi1)
  configuration: --arch=armel --target-os=linux --enable-shared --enable-gpl --enable-libx264 --enable-nonfree
  libavutil      55.  3.100 / 55.  3.100
  libavcodec     57.  5.100 / 57.  5.100
  libavformat    57.  3.100 / 57.  3.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 11.100 /  6. 11.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.100 /  2.  0.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.40.100
  Duration: 00:00:03.28, start: 0.000000, bitrate: 10159 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 10156 kb/s, 25 fps, 25 tbr, 1200k tbn, 2400k tbc (default)
    Metadata:
      handler_name    : VideoHandler
Illegal instruction

结果是发生了错误。
有人告诉我,如果您不将选项设置为 ./configure,则会出现错误。的 libx264 .该选项是--extra-cflags='-march=armv6' --extra-ldflags='-march=armv6' .否则会使用不支持的指令。

所以我跑了./configure使用该选项,然后我运行了 make ,现在我收到一条错误消息:
common/arm/quant-a.S: Assembler messages:
common/arm/quant-a.S:362: Error: selected processor does not support ARM mode `rbit r1,r1'
common/arm/quant-a.S:363: Error: selected processor does not support ARM mode `rbit r1,r1'
Makefile:217: recipe for target 'common/arm/quant-a.o' failed
make: *** [common/arm/quant-a.o] Error 1

我不知道这个错误的含义。你应该如何处理我这个错误?

我使用的机器是 Raspberry PI B+,我的操作系统是 Raspbian。我想使用 ffmpeglibx264 .

任何意见和建议将不胜感激。

最佳答案

我在构建 libx264 时遇到了同样的错误,但我得到了一个旧版本来编译。似乎最近对库的一些更改破坏了 armv6 处理器的构建(或者我不知道需要编译开关)。

我的解决方案:

git clone git://git.videolan.org/x264
cd x264
git checkout 3902ae02a0edede5d6c44cb3ee9e24e618c66e6a

然后 ./configure 使用所需的选项、make、make install 等。

我正在尝试在我的台式机上交叉编译 ffmpeg,按照说明 here .我不知道我的解决方案是否有效,因为我被困在下一步(alsa-lib 似乎需要 python)!

关于linux - Q.关于ffmpeg的编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33095590/

相关文章:

linux -> 和 >> 运算符无效

从 Windows 到 Linux 的 Python 代码

raspberry-pi - 如何为 Raspberry Pi OS 64 位交叉构建 debian 包

python - 如何使用 Paramiko 通过中间主机 SSH 连接到机器?

linux - 如何为来自 crontab 的脚本添加时间戳和错误日志

ffmpeg 添加标志和照片和字幕

android - 如何转换视频并以合理的处理时间导出新文件

ios - 在 iOS 设备上捕获视频并将其实时流式传输到服务器(或其他移动设备)

linux - 如何在已部署的应用程序中检查 .NET Core 的版本?

c - 如何编译静态libwebscocket.a