Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ffmpeg在alpine docker容器cron作业中运行-i时挂起_Docker_Ffmpeg_Cron_Alpine - Fatal编程技术网

ffmpeg在alpine docker容器cron作业中运行-i时挂起

ffmpeg在alpine docker容器cron作业中运行-i时挂起,docker,ffmpeg,cron,alpine,Docker,Ffmpeg,Cron,Alpine,我发现ffmpeg中有奇怪的行为,只有在作为cron作业运行时才没有运行-I选项。我可以通过shell直接运行命令。cronjob命令运行,它甚至“启动”ffmpeg“可执行文件”,但当它到达-i选项和参数时,它将挂起 我在shell提示符下运行时包含了一个工作输出的副本,以演示输出应该显示什么 阿尔卑斯山:3.13.5 码头工人图片:阿尔卑斯山:最新(日期:2021-05-14) docker run: docker-run-vs:\\u-docker\\u-alpine-test:/medi

我发现ffmpeg中有奇怪的行为,只有在作为cron作业运行时才没有运行-I选项。我可以通过shell直接运行命令。cronjob命令运行,它甚至“启动”ffmpeg“可执行文件”,但当它到达-i选项和参数时,它将挂起

我在shell提示符下运行时包含了一个工作输出的副本,以演示输出应该显示什么

阿尔卑斯山:3.13.5

码头工人图片:阿尔卑斯山:最新(日期:2021-05-14)

docker run:

docker-run-vs:\\u-docker\\u-alpine-test:/media/pi--name-alpine-it-alpine-crond-f-l8

crontab脚本:

/media/pi/_site/pics-alpine.sh 2>&1 | tee/media/pi/_site/alpine.log

/媒体/pi/_站点/pics-alpine.sh脚本:

#!/bin/ash

set -xv

echo "START"

#encode jpgs to mp4
/usr/bin/ffmpeg -i /media/pi/to-video-back/%04d.jpg  /media/pi/_site/back/back-latest.mp4

echo "END"
日志文件的输出为:

echo "START"
+ echo START
START

### encode jpgs to mp4
/usr/bin/ffmpeg -i /media/pi/to-video-back/%04d.jpg  /media/pi/_site/back/back-latest.mp4
+ /usr/bin/ffmpeg -i '/media/pi/to-video-back/%04d.jpg' /media/pi/_site/back/back-latest.mp4
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.1 (Alpine 10.2.1_git20210328) 20210328
  configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-libdav1d --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --enable-libsrt --enable-libssh --enable-libvidstab --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --enable-vulkan --enable-libsoxr --enable-libwebp --enable-libaom --disable-debug
直接从shell提示符运行时的脚本输出:

/media/pi/_site # ./pics-alpine.sh

echo "START"
+ echo START
START

### encode jpgs to mp4
/usr/bin/ffmpeg -i /media/pi/to-video-back/%04d.jpg  /media/pi/_site/back/back-latest.mp4
+ /usr/bin/ffmpeg -i '/media/pi/to-video-back/%04d.jpg' /media/pi/_site/back/back-latest.mp4
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.1 (Alpine 10.2.1_git20210328) 20210328
  configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-libdav1d --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --enable-libsrt --enable-libssh --enable-libvidstab --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --enable-vulkan --enable-libsoxr --enable-libwebp --enable-libaom --disable-debug
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, image2, from '/media/pi/to-video-back/%04d.jpg':
  Duration: 00:00:00.96, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 1280x960, 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x7fd9cf099b00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fd9cf099b00] profile High, level 3.2, 4:2:0, 8-bit
[libx264 @ 0x7fd9cf099b00] 264 - core 161 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to '/media/pi/_site/back/back-latest.mp4':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1280x960, q=2-31, 25 fps, 12800 tbn
    Metadata:
      encoder         : Lavc58.134.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=   24 fps=0.0 q=-1.0 Lsize=      25kB time=00:00:00.84 bitrate= 242.1kbits/s speed=1.56x
video:24kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.565835%
[libx264 @ 0x7fd9cf099b00] frame I:2     Avg QP:17.30  size:  3693
[libx264 @ 0x7fd9cf099b00] frame P:11    Avg QP:20.46  size:   854
[libx264 @ 0x7fd9cf099b00] frame B:11    Avg QP:22.05  size:   623
[libx264 @ 0x7fd9cf099b00] consecutive B-frames: 29.2% 25.0% 12.5% 33.3%
[libx264 @ 0x7fd9cf099b00] mb I  I16..4: 14.6% 83.5%  2.0%
[libx264 @ 0x7fd9cf099b00] mb P  I16..4:  3.0%  2.2%  0.0%  P16..4:  5.2%  0.1%  0.1%  0.0%  0.0%    skip:89.3%
[libx264 @ 0x7fd9cf099b00] mb B  I16..4:  0.4%  0.1%  0.0%  B16..8:  6.5%  0.0%  0.0%  direct: 0.1%  skip:92.9%  L0:35.0% L1:64.8% BI: 0.2%
[libx264 @ 0x7fd9cf099b00] 8x8 transform intra:73.3% inter:94.3%
[libx264 @ 0x7fd9cf099b00] coded y,uvDC,uvAC intra: 8.5% 12.1% 0.5% inter: 0.7% 3.3% 0.0%
[libx264 @ 0x7fd9cf099b00] i16 v,h,dc,p: 77% 15%  6%  2%
[libx264 @ 0x7fd9cf099b00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 71%  6% 20%  1%  1%  0%  1%  0%  0%
[libx264 @ 0x7fd9cf099b00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 55% 13% 24%  1%  3%  1%  1%  1%  1%
[libx264 @ 0x7fd9cf099b00] i8c dc,h,v,p: 92%  4%  4%  0%
[libx264 @ 0x7fd9cf099b00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x7fd9cf099b00] ref P L0: 57.6%  2.5% 30.8%  9.1%
[libx264 @ 0x7fd9cf099b00] ref B L0: 70.2% 27.6%  2.2%
[libx264 @ 0x7fd9cf099b00] ref B L1: 98.5%  1.5%
[libx264 @ 0x7fd9cf099b00] kb/s:196.96

echo "END"
+ echo END
END
从上面可以看到,当从shell提示符运行时,它启动ffmpeg,然后处理参数。但当作为cron运行时,它会打开ffmpeg,但会忽略或挂起对参数的处理

最后,当我进行检查以查看运行的内容时,ps ax中显示了以下内容:

   58 root      0:00 /bin/ash -c /media/pi/_site/pics-alpine.sh 2>&1 | tee /media/pi/_site/alpine.log
   59 root      0:00 {pics-alpine.sh} /bin/ash /media/pi/_site/pics-alpine.sh
   60 root      0:00 tee /media/pi/_site/alpine.log
   61 root      0:00 /usr/bin/ffmpeg -i /media/pi/to-video-back/%04d.jpg /media/pi/_site/back/back-latest.mp4
它们只是坐在那里,好像在等待输入,所以我怀疑ffmpeg有一个bug,或者我的cron没有正确地传递参数


关于如何解决此问题有何想法?

您可能需要在FFmpeg命令中添加
-y
全局选项,以便在不询问的情况下覆盖输出文件。不,没有区别,输出是相同的,也没有生成文件。从字面上看,好像启动了可执行文件,但没有看到-i输入参数。我怀疑这可能是一个bug,但这是一个非常奇怪的bug,因为我以前从未见过这种行为。