dongyu1983 2016-01-19 22:27
浏览 238

通过PHP的shell_exec()启动ffmpeg作业时,防止错误日志中的输出

I'm getting the entire output of the ffmpeg command printed to my server's error.log -- but as far as I can tell, the jobs complete successfully with no error.

Is there any way to suppress the output? I have seen people append stuff like >/dev/null 2>/dev/null & to their command, however that forces the command to return immediately and the job runs in the background. Unfortunately, I need the job to run in the foreground, because I need to do stuff with the output once the job is done.

Here's the command I am running...

shell_exec('ffmpeg -i input.mp4 -f mp4 -c:v libx264 -preset slow -crf 24 -s 1280x720 -c:a libfdk_aac -profile:a aac_he -ar 22050 -b:a 64k -movflags +faststart output-1280x720.mp4');

Here's the output I am seeing...

[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] ffmpeg version N-77432-gc0f67e1 Copyright (c) 2000-2015 the FFmpeg developers
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   built with gcc 4.4.5 (Debian 4.4.5-8)
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   configuration: --prefix=/usr --enable-nonfree --enable-libfreetype --enable-gpl --enable-libx264 --enable-x11grab --enable-zlib --enable-libvpx --enable-libtheora --enable-libvorbis --enable-libfdk-aac --enable-libmp3lame --enable-libopus
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   libavutil      55. 11.100 / 55. 11.100
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   libavcodec     57. 19.100 / 57. 19.100
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   libavformat    57. 20.100 / 57. 20.100
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   libavdevice    57.  0.100 / 57.  0.100
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   libavfilter     6. 21.100 /  6. 21.100
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   libswscale      4.  0.100 /  4.  0.100
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   libswresample   2.  0.101 /  2.  0.101
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   libpostproc    54.  0.100 / 54.  0.100
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test-video.mp4':
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   Metadata:
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     major_brand     : mp42
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     minor_version   : 0
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     compatible_brands: mp42mp41
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     creation_time   : 2015-07-14 22:13:20
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   Duration: 00:00:10.51, start: 0.000000, bitrate: 17178 kb/s
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 17170 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     Metadata:
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]       creation_time   : 2015-07-14 22:13:20
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]       handler_name    : Alias Data Handler
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]       encoder         : AVC Coding
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] Codec AVOption b (set bitrate (in bits/s)) specified for output file #0 (test-video-480p.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.
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] Codec AVOption profile () specified for output file #0 (test-video-480p.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.
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] [libx264 @ 0x4518ea0] using SAR=1280/1281
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] [libx264 @ 0x4518ea0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] [libx264 @ 0x4518ea0] profile High, level 3.0
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] [libx264 @ 0x4518ea0] 264 - core 120 r2151 a3f4407 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=umh subme=8 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=6 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=23 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=24.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] Output #0, mp4, to 'test-video-480p.mp4':
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   Metadata:
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     major_brand     : mp42
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     minor_version   : 0
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     compatible_brands: mp42mp41
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     encoder         : Lavf57.20.100
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 854x480 [SAR 1280:1281 DAR 16:9], q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc (default)
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     Metadata:
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]       creation_time   : 2015-07-14 22:13:20
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]       handler_name    : Alias Data Handler
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]       encoder         : Lavc57.19.100 libx264
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]     Side data:
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]       unknown side data type 10 (24 bytes)
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] Stream mapping:
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX]   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
[Tue Jan 19 17:10:59 2016] [error] [client XXX.XXX.XXX.XXX] Press [q] to stop, [?] for help
[Tue Jan 19 17:11:00 2016] [error] [client XXX.XXX.XXX.XXX] frame=   24 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
[Tue Jan 19 17:11:00 2016] [error] [client XXX.XXX.XXX.XXX] frame=   53 fps= 51 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
[Tue Jan 19 17:11:02 2016] [error] [client XXX.XXX.XXX.XXX] frame=   62 fps= 25 q=29.0 size=      75kB time=00:00:00.00 bitrate=N/A speed=   0x    
[Tue Jan 19 17:11:02 2016] [error] [client XXX.XXX.XXX.XXX] frame=   68 fps= 20 q=29.0 size=      90kB time=00:00:00.25 bitrate=2946.8kbits/s speed=0.0745x    
[Tue Jan 19 17:11:03 2016] [error] [client XXX.XXX.XXX.XXX] frame=   74 fps= 18 q=29.0 size=     103kB time=00:00:00.50 bitrate=1689.9kbits/s speed=0.12x    
[Tue Jan 19 17:11:04 2016] [error] [client XXX.XXX.XXX.XXX] frame=   80 fps= 16 q=29.0 size=     115kB time=00:00:00.75 bitrate=1258.5kbits/s speed=0.148x    
[Tue Jan 19 17:11:05 2016] [error] [client XXX.XXX.XXX.XXX] frame=   86 fps= 15 q=29.0 size=     128kB time=00:00:01.00 bitrate=1049.4kbits/s speed=0.175x    
[Tue Jan 19 17:11:05 2016] [error] [client XXX.XXX.XXX.XXX] frame=   92 fps= 15 q=29.0 size=     140kB time=00:00:01.25 bitrate= 917.2kbits/s speed=0.201x    
[Tue Jan 19 17:11:06 2016] [error] [client XXX.XXX.XXX.XXX] frame=   94 fps= 14 q=29.0 size=     146kB time=00:00:01.33 bitrate= 895.4kbits/s speed=0.196x    
[Tue Jan 19 17:11:07 2016] [error] [client XXX.XXX.XXX.XXX] frame=  100 fps= 13 q=29.0 size=     158kB time=00:00:01.58 bitrate= 816.6kbits/s speed=0.211x    
  • 写回答

1条回答 默认 最新

  • doushijia5684 2016-01-19 22:36
    关注

    Appending &> /dev/null should work.

    or >/dev/null 2>&1 is what you'll see more often.

    You problems was the final &. That's what makes the job run in the background

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题