La mise en B les images dans une vidéo avec ffmpeg
Selon ffmpeg manuel, réglage de la -g
est de définir l'espace entre le "je" de cadres et de réglage -bf
à utiliser "B" des cadres. L'ancien je l'ai eu, mais le dernier pas.
Le but: je suis d'essayer d'avoir une vidéo avec un GOP 3,12 (M= 3, N=12).
C'est à dire: 2 "B" images séparant chaque "P" cadres de, et les "je" cadres avec 12 images de la distance. Ou tout simplement: "IBBPBBPBBPBBI"
Je pense que je ne suis allé que N=12, en utilisant les commandes ci-dessous:
ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 12 -y -i video.yuv -vcodec mpeg4 video.m4v
MP4Box -hint -mtu 1460 -fps 30 -add video.m4v video.mp4
ffmpeg -y -i video.mp4 video_ref.yuv
../cmd/psnr 352 288 420 video.yuv video_ref.yuv > psnr_ref.txt
../cmd/mp4trace -f -s 192.168.0.2 12346 video.mp4 > trace
head -n 20 trace
Résultat:
[robert@10-2Fontes]$ head -n 20 trace
1 H 12002 9 0.000
2 P 11479 8 0.034
3 P 12021 9 0.066
4 P 11239 8 0.099
5 P 5407 4 0.134
6 P 2735 2 0.166
7 P 1014 1 0.199
8 P 850 1 0.232
9 P 619 1 0.265
10 P 979 1 0.298
11 P 813 1 0.331
12 P 806 1 0.364
13 H 5109 4 0.396
*Remarque, le plus important est la commande -g 12
dans ffmpeg, mais j'ai écrit à toutes les commandes. La vidéo que j'utilise est "la route", de cif page vidéos: http://www2.tkn.tu-berlin.de/research/evalvid/cif.html
Je ne sais pas pourquoi le résultat de la trace est à l'aide de "H" au lieu de "je".
J'ai essayé de mettre -bf 2
dans ffmpeg commande, mais n'a pas travaillé (je pense que parce que je n'ai pas vu "B", les indications dans le résultat)
Élément de la liste
ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 12 -bf 2 -y -i video.yuv -vcodec mpeg4 video.m4v
Résultat:
[robert@10-2Fontes]$ head -n 20 trace
1 H 12002 9 0.001
2 P 11479 8 0.034
3 P 12021 9 0.067
4 P 11239 8 0.100
5 P 5407 4 0.132
6 P 2735 2 0.166
7 P 1014 1 0.199
8 P 850 1 0.232
9 P 619 1 0.265
10 P 979 1 0.298
11 P 813 1 0.331
12 P 806 1 0.363
13 H 5109 4 0.400
ffmpeg [global options] [input options] -i input [output options] output
OriginalL'auteur roberutsu | 2013-04-06
Vous devez vous connecter pour publier un commentaire.
Résolu:
Comme LordNeckbeard dit, l'option de placement questions de ffmpeg.
Ordre de base est:
ffmpeg [options] [options] -i input [options de sortie] sortie hier
J'ai changé à la commande ci-dessous (mettre -g 30 -bf 2) et cela fonctionne:
ffmpeg -s cif -r 30 -i de la vidéo.yuv -vcodec mpeg4 -g 30 -bf 2 video.m4v
Remarque: Même après avoir changé la première fois n'a pas travaillé.
Le programme m'a demandé de remplacer les fichiers et j'ai dit Oui.
Mais apparemment sth n'a pas été supprimé, pour le moment j'ai supprimé tous les fichiers et il l'a fait à nouveau (à partir de zéro), il a travaillé.
Maintenant, le résultat est:
[robert@10-2Fontes]$ head-n 40 trace
1 H 12038 9 0.034
2 P 13204 10 0.132
3 B 5367 4 0.132
4 B 5553 4 0.132
5 P 12157 9 0.232
6 B 5069 4 0.232
7 B 5613 4 0.232
8 P 12739 9 0.334
9 B 5935 5 0.334
10 B 3921 3 0.334
11 P 4474 4 0.429
12 B 1247 1 0.429
13 B 784 1 0.429
14 P 1448 1 0.528
15 B 350 1 0.528
16 B 397 1 0.528
17 P 1023 1 0.627
18 B 299 1 0.633
19 B 265 1 0.634
20 P 829 1 0.727
21 B 209 1 0.733
22 B 340 1 0.733
23 P 867 1 0.826
24 B 343 1 0.833
25 B 378 1 0.833
26 P 865 1 0.925
27 B 282 1 0.925
28 B 461 1 0.925
29 H 5083 4 1.034
30 B 818 1 1.034
31 B 838 1 1.034
32 P 1171 1 1.122
33 B 443 1 1.133
34 B 409 1 1.133
35 P 1078 1 1.221
36 B 269 1 1.233
37 B 327 1 1.233
38 P 795 1 1.321
39 B 298 1 1.333
40 B 304 1 1.334
41 P 854 1 1.419
42 B 477 1 1.419
43 B 412 1 1.419
44 P 869 1 1.519
45 B 371 1 1.519
46 B 314 1 1.519
47 P 983 1 1.617
48 B 337 1 1.617
49 B 454 1 1.617
50 P 1118 1 1.717
51 B 286 1 1.717
52 B 275 1 1.717
53 P 1044 1 1.815
54 B 362 1 1.815
55 B 273 1 1.815
56 P 973 1 1.914
57 B 302 1 1.914
58 B 324 1 1.915
59 H 4525 4 2.033
OriginalL'auteur roberutsu