2017-03-27 7 views
3

Ceci est mon code en utilisant ffmpeg je veux avoir une vignette vidéo, mais je ne suis pas familier dans ffmpeg quelqu'un peut connaître l'erreur que j'ai eue.Im obtenir l'erreur "format de pixel obsolète utilisé, assurez-vous que vous avez défini la plage correctement en utilisant ffmpeg" .. quelqu'un peut-il vérifier mon code ci-dessous?

[swscaler @ 0x7ff8da028c00] deprecated pixel format used, make sure you did set range correctly 
Output #0, mjpeg, to 'image.jpg': 
Metadata: 
major_brand  : mp42 
minor_version : 0 
compatible_brands: isommp42 
encoder   : Lavf56.36.100 
Stream #0:0(und): Video: mjpeg, yuvj420p(pc), 320x240 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 1 fps, 1 tbn, 1 tbc (default) 
Metadata: 
    creation_time : 2016-11-06 09:40:22 
    handler_name : ISO Media file produced by Google Inc. 
    encoder   : Lavc56.41.100 mjpeg 
Stream mapping: 
Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native)) 
Press [q] to stop, [?] for help 
frame= 1 fps=0.0 q=4.8 Lsize=  16kB time=00:00:01.00 bitrate= 129.5kbits/s  
video:16kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000% 

Aussi Ceci est mon code:

$video_url ='https://URL/upload/4b8acab123563649f19e07450d810df6.mp4'; 


$ffmpeg = '/opt/local/bin/ffmpeg'; 
$image = 'image.jpg'; 
$interval = 5; 
$size = '320x240'; 
shell_exec($tmp = "$ffmpeg -i $video_url -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1"); 
+0

S'il vous plaît voir http://stackoverflow.com/questions/23067722/ swscaler-warning-deprecated-pixel-format-used –

+0

Copie possible de [avertissement swscaler: format de pixel obsolète utilisé] (http://stackoverflow.com/questions/23067722/swscaler-warning-deprecated-pixel-format-used) –

+0

@LouisLoudogTrott ier désolé im pas familier dans ffmpeg comment puis-je appliquer le 1er lien que vous me donnez, où puis-je changer ce format? –

Répondre

6

Selon forum ffmpeg cela peut être ignoré lorsqu'il est appelé à partir de la ligne de commande et je toujours ignoré. Une chose que vous pouvez essayer (test avec un fichier fictif S'IL VOUS PLAÎT) est d'ajouter -pix_fmt yuvj422p à la dernière ligne de sorte qu'il ressemble à ceci:

shell_exec($tmp = "$ffmpeg -i $video_url -pix_fmt yuvj422p -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1"); 

Comme je l'ai dit, testez-le s'il vous plaît que je ne peux pas guaratee les résultats mais En ce qui me concerne, j'ai utilisé ffmpeg des milliers de fois et tout semble très bien, même avec l'avertissement.

https://lists.ffmpeg.org/pipermail/ffmpeg-user/2014-February/020151.html

AFAICT, l'avertissement est principalement destiné aux utilisateurs de la bibliothèque, les utilisateurs ffmpeg ne devraient pas être affectés.

OK, l'ignorera alors.

+0

mais je ne peux pas obtenir un fichier image lorsque je l'exécute. –

+0

où puis-je ajouter ce -pix_fmt yuvj422p –

+0

je change le chemin de ma destination et je l'obtiens .. je n'utilise pas le chemin d'URL juste le chemin du serveur .. merci par le chemin :) –

1

Je change juste le chemin de la destination de l'image:

# path of image on the server 
$image = '/users/xx/xxxx/sample/upload/image.jpg'; 

ensuite utilisé les éléments suivants:

# $ffmpeg - path of ffmpeg on the server 
# $video_url - path of the video file on the server 

shell_exec($tmp = "$ffmpeg -i $video_url -pix_fmt yuvj422p -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size $image 2>&1");