2010-09-23 10 views
4

Ok Je reçois une erreur 'av_interleaved_write_frame(): Operation not allowed' en essayant d'encoder un fichier MOV. Premièrement, je dois décrire les conditions qui sont derrière.FFMPEG av_interleaved_write_frame(): opération non autorisée

Je suis en train d'encoder 12 fichiers différents de tailles et de formats de résolution différents via un script PHP qui s'exécute sur cron. Fondamentalement, il saisit un fichier HD MOV de 250 Mo et le code dans 4 tailles de trame différentes en tant que types de fichiers MOV, MP4 et WMV.

Maintenant, le script prend plus de 10 minutes pour exécuter et encoder chacun des fichiers pour le fichier d'entrée 250mb. Je génère les temps de traitement et dès que le temps sur le script frappe 10mins FFMPEG se bloque et retourne "av_interleaved_write_frame(): opération non autorisée" pour le fichier en cours de codage et tous les autres fichiers encore à coder. Si les vidéos d'entrée sont de 150 Mo, la durée totale du script est inférieure à 10 minutes, ce qui permet d'encoder correctement toutes les vidéos. De plus, si j'exécute la commande FFMPEG sur le fichier individuel qui échoue pour le fichier 250mb, il code le fichier sans problème. De faire à la recherche sur l'erreur "av_interleaved_write_frame()" il semble qu'il est lié à des horodatages de ce que je comprends être du fichier d'entrée. Mais en disant que cela ne semble pas être le cas dans mon cas, car je peux encoder le fichier sans problème si je le fais individuellement.

exemple commande ffmpeg

ffmpeg -i GVowbt3vsrXL.mov -s 1920x1080 -sameq -vf "unsharp" -y GVowbt3vsrXL_4.wmv 

Sortie d'erreur sur le fichier échoué à 10 minutes. Rappelez-vous qu'il n'y a pas de problème avec la commande si je la lance elle-même, c'est seulement quand le script atteint 10 minutes.

'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', 

Ensuite, il

erreurs
frame= 75 fps= 5 q=1.0 size= 12704kB time=2.90 bitrate=3588 6.0kbits av_interleaved_write_frame(): Operation not permitted', 
    ) 

toute personne a rencontré Has ce genre de problème avant? Il semble que ce soit quelque chose à voir avec les horodatages mais seulement parce que le script tourne pendant une période de plus de 10 minutes. C'est peut-être lié à PHP/Apache config mais je ne sais pas si c'est FFMPEG ou si c'est la configuration du serveur que je dois regarder.

Répondre

0

ce patch (lié à partir de la page de numéro de ffmpeg 807) résolu le problème pour moi réencodage vidéo et la copie audio d'un fichier flv en direct capturé dans un fichier AVI:

https://roundup.ffmpeg.org/file1098/utils.c.patch

+0

quelqu'un sait où je peux trouver ce fichier ces jours-ci? – rogerdpack

+1

@ njahnke, le lien est mort. – Tom

+0

trouvé à nouveau ici: https://www.lscube.org/issue807 – njahnke

1

Une cause trivialement résoluble pour Ce problème (si vous avez trouvé cette question lors de la recherche de ce problème, comme je l'ai fait) est lorsque la partition à laquelle vous essayez d'écrire votre fichier est pleine. Assurez-vous d'avoir suffisamment d'espace disponible pour écrire votre fichier. Sur linux/unix cela est aussi facile que d'exécuter

$ df -h 

Pour résoudre, juste libérer suffisamment d'espace en déplaçant les fichiers vers une autre partition, la suppression des fichiers indésirables et vider votre corbeille.

Questions connexes