FFmpeg - Extraction de vidéo et audio du fichier de flux de transport (.ts)
Je souhaite extraire l'audio et la vidéo d'un programme dans un flux de transport de fichier (.ts) en spécifiant son PID sans perte de qualité et en utilisant le même codec dans le fichier (le fichier de sortie est un MPEG).
Est que même possible avec FFmpeg? Si oui, comment puis-je le faire?
Pour l'instant, j'en suis venu à cette commande:
ffmpeg -i tsfile.ts -vcodec copy -acodec copy -q:v 1 output.mpg
Modifier: Notez que le fichier de sortie.mpg est créé. Le fichier contient la vidéo, mais l'audio n'est pas joint (pas de son). Aussi, je ne suis pas en mesure de préciser le programme de PID à extraire.
Edit 2: Voici la sortie de ffmpeg -i tsfile.ts
ffmpeg version N-47062-g26c531c Copyright (c) 2000-2012 the FFmpeg developers
built on Nov 25 2012 12:21:26 with gcc 4.7.2 (GCC)
libavutil 52. 9.100 /52. 9.100
libavcodec 54. 77.100 /54. 77.100
libavformat 54. 37.100 /54. 37.100
libavdevice 54. 3.100 /54. 3.100
libavfilter 3. 23.102 / 3. 23.102
libswscale 2. 1.102 / 2. 1.102
libswresample 0. 17.101 / 0. 17.101
libpostproc 52. 2.100 /52. 2.100
[mpeg2video @ 0201c7a0] mpeg_decode_postinit() failure
Last message repeated 10 times
[mpegts @ 0037b800] PES packet size mismatch
Input #0, mpegts, from 'tsfile.ts':
Duration: 00:01:30.58, start: 56297.848344, bitrate: 18045 kb/s
Program 1
Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] /0x0002), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x34]: Audio: ac3 ([129][0][0][0] /0x0081), 48000 Hz, 5.1(side), s16, 384 kb/s
Voici un tsinfo.exe sur le .fichier ts:
Reading from C:\tsfile.ts
Scanning 10000 TS packets
Packet 1 is PAT
Program list:
Program 1 -> PID 0020 (32)
Packet 2 is PMT with PID 0020 (32)
Program 1, version 1, PCR PID 0031 (49)
Program info (38 bytes): 0e 03 c0 b9 16 10 06 c0 02 71 c0 04 00 0b 02 42 3f 05 04
47 41 39 34 86 0d e2 65 6e 67 7e 3f ff 65 6e 67 c1 3f ff
maximum bitrate (3 bytes): c0 b9 16
smoothing buffer (6 bytes): c0 02 71 c0 04 00
system clock (2 bytes): 42 3f
Registration GA94
Descriptor tag 86 (134) (13 bytes): e2 65 6e 67 7e 3f ff 65 6e 67 c1 3f ff
Program streams:
PID 0031 ( 49) -> Stream type 02 ( 2) H.262/13818-2 video (MPEG-2) or 11172-2 constrained video
PID 0034 ( 52) -> Stream type 81 (129) User private
ES info (6 bytes): 6a 04 41 43 2d 33
DVB AC-3 (4 bytes): 41 43 2d 33
Found 14 PAT packets and 7 PMT packets in 10000 TS packets
source d'informationauteur Passepartout
Vous devez vous connecter pour publier un commentaire.
ffmpeg pouvez sélectionner le flux de programme ainsi que le flux élémentaire à l'intérieur du programme.
à l'aide de l'option de carte et de flux spécificateur.
regardez -
https://superuser.com/questions/343716/ffmpeg-how-to-demux-live-multi-program-transport-stream
J'ai pu obtenir SPTS de MPTS dans ffmpeg par l'extraction requise de ruisseaux et de multiplexage. Mon mpts a 6 volets pour les trois programmes (audio, une vidéo):