ОК. Я получаю ошибку «av_interleaved_write_frame (): операция не разрешена» при попытке кодировать файл MOV.Во-первых, мне нужно обрисовать в общих чертах условия, стоящие за этим.
Я кодирую 12 различных файлов с разным разрешением и форматами с помощью PHP-скрипта, который работает на cron.По сути, он захватывает 250-мегабайтный файл HD MOV и кодирует его в 4 различных размера кадра в виде файлов MOV, MP4 и WMV.
Теперь сценарию требуется более 10 минут для запуска и кодирования каждого из файлов для входного файла 250 МБ.Я выводю время обработки, и как только время в скрипте достигает 10 минут, происходит сбой FFMPEG и возвращается «av_interleaved_write_frame (): операция не разрешена» для текущего кодируемого файла и всех остальных оставшихся файлов, которые еще предстоит кодировать.
Если размер входного видео составляет 150 МБ, общее время выполнения сценария составляет менее 10 минут, поэтому он хорошо кодирует все видео.Кроме того, если я запускаю команду FFMPEG для отдельного файла, на котором она не выполняется, для файла 250 МБ он кодирует файл без проблем.
Из исследования ошибки "av_interleaved_write_frame ()", похоже, она связана с метками времени того, что я понимаю из входного файла.Но, говоря, что в моем случае это не так, потому что я могу без проблем закодировать файл, если я сделаю это по отдельности.
пример команды ffmpeg
ffmpeg -i GVowbt3vsrXL.mov -s 1920x1080 -sameq -vf "unsharp" -y GVowbt3vsrXL_4.wmv
Ошибкавывод файла с ошибкой в 10 минут.Помните, что нет никаких проблем с командой, если я запускаю ее сам по себе, это только тогда, когда сценарий достигает 10 минут.
'output' =>
array (
0 => 'FFmpeg version SVN-r24545, Copyright (c) 2000-2010 the FFmpeg developers',
1 => ' built on Aug 20 2010 23:32:02 with gcc 4.1.2 20080704 (Red Hat 4.1.2-48)',
2 => ' configuration: --enable-shared --enable-gpl --enable-pthreads --enable-nonfree --cpu=opteron --extra-cflags=\'-O3 -march=opteron -mtune=opteron\' --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-avfilter --enable-filter=movie --enable-avfilter-lavf --enable-swscale',
3 => ' libavutil 50.23. 0 / 50.23. 0',
4 => ' libavcore 0. 1. 0 / 0. 1. 0',
5 => ' libavcodec 52.84. 1 / 52.84. 1',
6 => ' libavformat 52.77. 0 / 52.77. 0',
7 => ' libavdevice 52. 2. 0 / 52. 2. 0',
8 => ' libavfilter 1.26. 1 / 1.26. 1',
9 => ' libswscale 0.11. 0 / 0.11. 0',
10 => 'Input #0, mov,mp4,m4a,3gp,3g2,mj2, from \'/home/hdfootage/public_html/process/VideoEncode/_tmpfiles/GVowbt3vsrXL/GVowbt3vsrXL.mov\':',
11 => ' Metadata:',
12 => ' major_brand : qt',
13 => ' minor_version : 537199360',
14 => ' compatible_brands: qt',
15 => ' Duration: 00:00:20.00, start: 0.000000, bitrate: 110802 kb/s',
16 => ' Stream #0.0(eng): Video: mjpeg, yuvj422p, 1920x1080 [PAR 72:72 DAR 16:9], 109386 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc',
17 => ' Stream #0.1(eng): Audio: pcm_s16be, 44100 Hz, 2 channels, s16, 1411 kb/s',
18 => '[buffer @ 0xdcd0e0] w:1920 h:1080 pixfmt:yuvj422p',
19 => '[unsharp @ 0xe00280] auto-inserting filter \'auto-inserted scaler 0\' between the filter \'src\' and the filter \'Filter 0 unsharp\'',
20 => '[scale @ 0xe005b0] w:1920 h:1080 fmt:yuvj422p -> w:1920 h:1080 fmt:yuv420p flags:0xa0000004',
21 => '[unsharp @ 0xe00280] effect:sharpen type:luma msize_x:5 msize_y:5 amount:1.00',
22 => '[unsharp @ 0xe00280] effect:none type:chroma msize_x:0 msize_y:0 amount:0.00',
23 => 'Output #0, asf, to \'/home/hdfootage/public_html/process/VideoEncode/_tmpfiles/GVowbt3vsrXL/GVowbt3vsrXL_4.wmv\':',
24 => ' Metadata:',
25 => ' WM/EncodingSettings: Lavf52.77.0',
26 => ' Stream #0.0(eng): Video: msmpeg4, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 1k tbn, 25 tbc',
27 => ' Stream #0.1(eng): Audio: libmp3lame, 44100 Hz, 2 channels, s16, 64 kb/s',
28 => 'Stream mapping:',
29 => ' Stream #0.0 -> #0.0',
30 => ' Stream #0.1 -> #0.1',
31 => 'Press [q] to stop encoding',
32 => '[msmpeg4 @ 0xdccb50] warning, clipping 1 dct coefficients to -127..127',
Тогда она ошибается
frame= 75 fps= 5 q=1.0 size= 12704kB time=2.90 bitrate=3588 6.0kbits av_interleaved_write_frame(): Operation not permitted',
)
Кто-нибудь сталкивался с подобнымпроблемы раньше?Похоже, что-то связано с метками времени, но только потому, что скрипт работает дольше 10 минут.Возможно, это связано с конфигурацией PHP / Apache, но я не знаю, является ли это FFMPEG или конфигурацией сервера, на которую мне нужно обратить внимание.