web-dev-qa-db-ja.com

ffmpegのバージョンを目的のバージョンにロールバックする方法は?このシナリオではロールバックが必要ですか?

これは、armhfボードで実行されているUbuntu 16.04です。

私はffmpegを使用してウェブカメラからビデオを録画しています。プロセスは、ffmpegのバージョンで最もよく機能します。特定のバージョンにインストール/ロールバックしたい。

問題のあるクローンからの出力:

ffmpeg -version
ffmpeg version 4.1.git Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.10) 20160609
configuration: --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 --enable-indev=v4l2
libavutil      56. 25.100 / 56. 25.100
libavcodec     58. 42.104 / 58. 42.104
libavformat    58. 25.100 / 58. 25.100
libavdevice    58.  6.101 / 58.  6.101
libavfilter     7. 46.101 /  7. 46.101
libswscale      5.  4.100 /  5.  4.100
libswresample   3.  4.100 /  3.  4.100
libpostproc    55.  4.100 / 55.  4.100


root@busplay4:/usr/bin# dpkg-query -W ffmpeg
ffmpeg  5:201812261919-git-1
root@busplay4:/usr/bin# dpkg -l | grep ffmpeg
ii  chromium-codecs-ffmpeg-extra           71.0.3578.98-0ubuntu0.16.04.1                armhf        Extra ffmpeg codecs for the Chromium Browser
ii  ffmpeg                                 5:201812261919-git-1                         armhf        Package created with checkinstall 1.6.2
ii  ffmpeg-doc                             7:3.3.3-5ubuntu1                             all          Documentation of the FFmpeg multimedia framework
ii  ffmpegthumbnailer                      2.0.10-0.1                                   armhf        fast and lightweight video thumbnailer
ii  libavcodec-ffmpeg56:armhf              7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with de/encoders for audio/video codecs - runtime files
ii  libavdevice-ffmpeg56:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for handling input and output devices - runtime files
ii  libavfilter-ffmpeg5:armhf              7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library containing media filters - runtime files
ii  libavformat-ffmpeg56:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with (de)muxers for multimedia containers - runtime files
ii  libavresample-ffmpeg2:armhf            7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg compatibility library for resampling - runtime files
ii  libavutil-ffmpeg54:armhf               7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with functions for simplifying programming - runtime files
ii  libffmpegthumbnailer4v5                2.0.10-0.1                                   armhf        shared library for ffmpegthumbnailer
ii  libpostproc-ffmpeg53:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for post processing - runtime files
ii  libswresample-ffmpeg1:armhf            7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for audio resampling, rematrixing etc. - runtime files
ii  libswscale-ffmpeg3:armhf               7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for image scaling and various conversions - runtime files

作業クローンからの出力:

ffmpeg -version
ffmpeg version 3.3.3-5ubuntu1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 5.4.1 (Ubuntu/Linaro 5.4.1-2ubuntu1~16.04) 20160904
configuration: --prefix=/usr --extra-version=5ubuntu1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --disable-d3d11va --disable-dxva2 --disable-nvenc --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-v4l2_m2m --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil      55. 58.100 / 55. 58.100
libavcodec     57. 89.100 / 57. 89.100
libavformat    57. 71.100 / 57. 71.100
libavdevice    57.  6.100 / 57.  6.100
libavfilter     6. 82.100 /  6. 82.100
libavresample   3.  5.  0 /  3.  5.  0
libswscale      4.  6.100 /  4.  6.100
libswresample   2.  7.100 /  2.  7.100
libpostproc    54.  5.100 / 54.  5.100

これら2つのXU4はクローンでしたが、何らかの方法でmake/buildを実行してバージョンを新しいバージョンに変更できました。どのようにして異なるバージョンになったかについての情報はありません。優先バージョンにロールバックまたは変更する方法を教えてください。ロールバックする理由は、以前のバージョンではffmpegを使用したビデオ録画のパフォーマンスが優れているためです。

正常に動作するクローンからの出力。 3.3.3-5ubuntu1バージョン。

ffmpeg version 3.3.3-5ubuntu1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.1 (Ubuntu/Linaro 5.4.1-2ubuntu1~16.04) 20160904
  configuration: --prefix=/usr --extra-version=5ubuntu1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --disable-d3d11va --disable-dxva2 --disable-nvenc --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-v4l2_m2m --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  WARNING: library configuration mismatch
  avcodec     configuration: --prefix=/usr --extra-version=5ubuntu1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --disable-d3d11va --disable-dxva2 --disable-nvenc --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-v4l2_m2m --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc --enable-netcdf
  avfilter    configuration: --prefix=/usr --extra-version=5ubuntu1 --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --disable-d3d11va --disable-dxva2 --disable-nvenc --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --enable-v4l2_m2m --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc --enable-netcdf
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
[video4linux2,v4l2 @ 0x645ec0] The V4L2 driver changed the video from 320x240 to 640x480
[video4linux2,v4l2 @ 0x645ec0] The driver changed the time per frame from 1/30 to 1/60
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 16103.299011, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 60 fps, 60 tbr, 1000k tbn, 1000k tbc
Codec AVOption x264opts (x264 options) specified for output file #0 (lq4.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (h264_v4l2m2m))
Press [q] to stop, [?] for help
[swscaler @ 0x67c9f0] deprecated pixel format used, make sure you did set range correctly
[h264_v4l2m2m @ 0x649940] driver 'uvcvideo' on card '3.0 USB Camera: 3.0 USB Camera'
[h264_v4l2m2m @ 0x649940] driver 'exynos-gsc' on card 'exynos-gsc gscaler'
    Last message repeated 1 times
[h264_v4l2m2m @ 0x649940] driver 's5p-mfc' on card 's5p-mfc-enc'
[h264_v4l2m2m @ 0x649940] Using device /dev/video11
[h264_v4l2m2m @ 0x649940] driver 's5p-mfc' on card 's5p-mfc-enc'
[h264_v4l2m2m @ 0x649940] h264_v4l2m2m encoder: enabling bit rate control: 750000
[h264_v4l2m2m @ 0x649940] h264 profile not found
[h264_v4l2m2m @ 0x649940] Encoder adjusted: qmin (0), qmax (51)
Output #0, mp4, to 'lq4.mp4':
  Metadata:
    encoder         : Lavf57.71.100
    Stream #0:0: Video: h264 (h264_v4l2m2m) ([33][0][0][0] / 0x0021), nv21, 640x480, q=2-31, 750 kb/s, 60 fps, 15360 tbn, 60 tbc
    Metadata:
      encoder         : Lavc57.89.100 h264_v4l2m2m
[h264_v4l2m2m @ 0x649940] output  POLLERR
[mp4 @ 0x648400] Non-monotonous DTS in output stream 0:0; previous: 0, current: 0; changing to 1. This may result in incorrect timestamps in the output file.
frame=  737 fps= 61 q=-0.0 Lsize=    2561kB time=00:00:12.25 bitrate=1712.3kbits/s dup=153 drop=0 speed=1.02x   
video:2557kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.153437%

機能しないバージョンからの出力:

ffmpeg -framerate 30 -video_size 320x240 -input_format mjpeg -i /dev/video0 -pix_fmt nv21 -vcodec h264 -acodec none -c:v h264_v4l2m2m -x264opts nal-hrd=cbr:force-cfr=1 -b:v 750k -minrate 750k -maxrate 750k -bufsize 1000k lq4.mp4
ffmpeg version 4.1.git Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.10) 20160609
  configuration: --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 --enable-indev=v4l2
  libavutil      56. 25.100 / 56. 25.100
  libavcodec     58. 42.104 / 58. 42.104
  libavformat    58. 25.100 / 58. 25.100
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 46.101 /  7. 46.101
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
[video4linux2,v4l2 @ 0x16f4390] The V4L2 driver changed the video from 320x240 to 640x480
[video4linux2,v4l2 @ 0x16f4390] The driver changed the time per frame from 1/30 to 1/60
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 375.645303, bitrate: N/A
    Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 60 fps, 60 tbr, 1000k tbn, 1000k tbc
Codec AVOption x264opts (x264 options) specified for output file #0 (lq4.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (h264_v4l2m2m))
Press [q] to stop, [?] for help
[swscaler @ 0x1706dd0] deprecated pixel format used, make sure you did set range correctly
[h264_v4l2m2m @ 0x16f8490] driver 'uvcvideo' on card '3.0 USB Camera: 3.0 USB Camera'
[h264_v4l2m2m @ 0x16f8490] driver 'exynos-gsc' on card 'exynos-gsc gscaler'
    Last message repeated 1 times
[h264_v4l2m2m @ 0x16f8490] driver 's5p-mfc' on card 's5p-mfc-enc'
[h264_v4l2m2m @ 0x16f8490] Using device /dev/video11
[h264_v4l2m2m @ 0x16f8490] driver 's5p-mfc' on card 's5p-mfc-enc'
[h264_v4l2m2m @ 0x16f8490] h264 profile not found
[h264_v4l2m2m @ 0x16f8490] Encoder adjusted: qmin (0), qmax (51)
Output #0, mp4, to 'lq4.mp4':
  Metadata:
    encoder         : Lavf58.25.100
    Stream #0:0: Video: h264 (h264_v4l2m2m) (avc1 / 0x31637661), nv21, 640x480, q=2-31, 750 kb/s, 60 fps, 15360 tbn, 60 tbc
    Metadata:
      encoder         : Lavc58.42.104 h264_v4l2m2m
[mp4 @ 0x16f7050] Non-monotonous DTS in output stream 0:0; previous: 0, current: 0; changing to 1. This may result in incorrect timestamps in the output file.
[mjpeg @ 0x16f5c90] mjpeg_decode_dc: bad vlc: 0:0 (0x16f626c)
[mjpeg @ 0x16f5c90] error dc
[mjpeg @ 0x16f5c90] error y=41 x=1
Video encoding failed=-0.0 size=    2560kB time=00:00:00.80 bitrate=26212.8kbits/s dup=29 drop=0 speed=1.58x   
Conversion failed!

機能しないバージョンからの出力:

root@busplay4:/usr/bin# dpkg -l | grep ffmpeg
ii  chromium-codecs-ffmpeg-extra           71.0.3578.98-0ubuntu0.16.04.1                armhf        Extra ffmpeg codecs for the Chromium Browser
ii  ffmpeg                                 5:201812261919-git-1                         armhf        Package created with checkinstall 1.6.2
ii  ffmpeg-doc                             7:3.3.3-5ubuntu1                             all          Documentation of the FFmpeg multimedia framework
ii  ffmpegthumbnailer                      2.0.10-0.1                                   armhf        fast and lightweight video thumbnailer
ii  libavcodec-ffmpeg56:armhf              7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with de/encoders for audio/video codecs - runtime files
ii  libavdevice-ffmpeg56:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for handling input and output devices - runtime files
ii  libavfilter-ffmpeg5:armhf              7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library containing media filters - runtime files
ii  libavformat-ffmpeg56:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with (de)muxers for multimedia containers - runtime files
ii  libavresample-ffmpeg2:armhf            7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg compatibility library for resampling - runtime files
ii  libavutil-ffmpeg54:armhf               7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with functions for simplifying programming - runtime files
ii  libffmpegthumbnailer4v5                2.0.10-0.1                                   armhf        shared library for ffmpegthumbnailer
ii  libpostproc-ffmpeg53:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for post processing - runtime files
ii  libswresample-ffmpeg1:armhf            7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for audio resampling, rematrixing etc. - runtime files
ii  libswscale-ffmpeg3:armhf               7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for image scaling and various conversions - runtime files

動作しているXU4からの出力

odroid@odroid:~$ dpkg  --list | grep "ffmpeg"
ii  chromium-codecs-ffmpeg-extra           71.0.3578.98-0ubuntu0.16.04.1                armhf        Extra ffmpeg codecs for the Chromium Browser
ii  ffmpeg                                 7:3.3.3-5ubuntu1                             armhf        Tools for transcoding, streaming and playing of multimedia files
ii  ffmpeg-doc                             7:3.3.3-5ubuntu1                             all          Documentation of the FFmpeg multimedia framework
ii  ffmpegthumbnailer                      2.0.10-0.1                                   armhf        fast and lightweight video thumbnailer
ii  libavcodec-ffmpeg56:armhf              7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with de/encoders for audio/video codecs - runtime files
ii  libavdevice-ffmpeg56:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for handling input and output devices - runtime files
ii  libavfilter-ffmpeg5:armhf              7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library containing media filters - runtime files
ii  libavformat-ffmpeg56:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with (de)muxers for multimedia containers - runtime files
ii  libavresample-ffmpeg2:armhf            7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg compatibility library for resampling - runtime files
ii  libavutil-ffmpeg54:armhf               7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library with functions for simplifying programming - runtime files
ii  libffmpegthumbnailer4v5                2.0.10-0.1                                   armhf        shared library for ffmpegthumbnailer
ii  libpostproc-ffmpeg53:armhf             7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for post processing - runtime files
ii  libswresample-ffmpeg1:armhf            7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for audio resampling, rematrixing etc. - runtime files
ii  libswscale-ffmpeg3:armhf               7:2.8.15-0ubuntu0.16.04.1                    armhf        FFmpeg library for image scaling and various conversions - runtime files

また、バージョンの変更が原因でエラーが発生しなかった場合や、ログがffmpegに関連する何かを示唆している場合も提案します。

1
Thoht

間違ったバージョンをアンインストールするには、ソースファイルが必要です。 FFmpegソースフォルダーに移動し、次のコマンドを使用します。

Sudo make uninstall

それはあなたが必要としないFFmpegバージョンをアンインストールします。

2
cgab