I got some video files in MPEG PS format.
These files would not play in VDR even if put them in directories named after timestamps and name them 00001.ts. The command vdr --genindex fails to create any index file.
However, if I first convert them to MPEG TS format with
ffmpeg -i file.mpg -c copy 00001.ts
then VDR will recognize and play the files (but report at least one error per second).
I was wondering if there is a way to play MPEG PS recordings in VDR, or a FUSE program that would make the recordings appear as something that VDR recognizes. If I understand correctly, the MPEG PES format that VDR originally used (the 001.vdr files) is kind of a subset of the PS format.
If possible, I'd like to avoid any such conversion, at most add some index files for VDR playback.
I found https://github.com/vdr-projects/vdr-plugin-dvd which should be able to deal with the video format (DVD uses MPEG PS), but I suppose it would only work with an actual DVD (if it is compatible with a current VDR version).
Marko
Hi!
You could try this ffmpeg command: ffmpeg -i file.mpg -vcodec copy -bsf:v h264_mp4toannexb 00001.ts
Do you have to replay the VDR files with a FF-card or xinelib frontend? With xinelib this ts files should work.
BR, Stephan.
I got some video files in MPEG PS format.
Have you tried VLC ?
I'm not very fluent in the various container formats... could it be that the file is really in a "transport stream" format, maybe with a limited/filtered subset of PID's ?
I wonder what dvbsnoop would say about the file, such as:
dvbsnoop -s sec -nph 0 -if my_ps_file.bin
Check out the other possible values of the "-s" arg: https://dvbsnoop.sourceforge.net/dvbsnoop.html
Frank
Resend w/o attachments because of list size limit of 140KB.
Am 07.01.25 um 21:53 schrieb Frantisek Rysanek:
I got some video files in MPEG PS format.
I was wondering if there is a way to play MPEG PS recordings in VDR,
or a FUSE program that would make the recordings appear as something that VDR recognizes.
All OSS players but totem and mpv play 001.vdr files without conversion or renaming here.
xineliboutput built-in xine media player plays all *.mpg and *.vdr files.
I wonder what dvbsnoop would say about the file, such as:
dvbsnoop -s sec -nph 0 -if my_ps_file.bin
Maybe it helps to know the details about VDR's old MPEG-PS files -Attachment 1- (Only send to Marko directly off list):
Check out the other possible values of the "-s" arg: https://dvbsnoop.sourceforge.net/dvbsnoop.html
Frank
schorpp@tom3:~$ dvbsnoop -s pes -nph 0 -if '/mnt/vdr2-video0/%%@Natural_Born_Killers_Spielfilm_USA_1994_(Natural_Born_Killer/2007-09-09.01.45.50.99.rec/001.vdr'|head dvbsnoop V1.4.50 -- http://dvbsnoop.sourceforge.net/
------------------------------------------------------------ PES-Packet: 00000001 PID: (Unkown PID), Length: 2048 (0x0800) from file: /mnt/vdr2-video0/%%@Natural_Born_Killers_Spielfilm_USA_1994_(Natural_Born_Killer/2007-09-09.01.45.50.99.rec/001.vdr ------------------------------------------------------------ Packet_start_code_prefix: 0x000001 Stream_id: 224 (0xe0) [= ITU-T Rec. H.262 | ISO/IEC 13818-2 or ISO/IEC 11172-2 video stream] PES_packet_length: 2042 (0x07fa) reserved1: 2 (0x02) schorpp@tom3:~$
schorpp@tom3:~$ dvbsnoop -s sec -nph 0 -if '/mnt/vdr2-video0/%%@Natural_Born_Killers_Spielfilm_USA_1994_(Natural_Born_Killer/2007-09-09.01.45.50.99.rec/001.vdr'
dvbsnoop-mpegps-vdr-sec.txt -Attachment 2- (Only send to Marko
directly off list) Speicherzugriffsfehler (SIGSEGV)
schorpp@tom3:~$ mediainfo '/mnt/vdr2-video0/%%@Natural_Born_Killers_Spielfilm_USA_1994_(Natural_Born_Killer/2007-09-09.01.45.50.99.rec/001.vdr' General Complete name : /mnt/vdr2-video0/%%@Natural_Born_Killers_Spielfilm_USA_1994_(Natural_Born_Killer/2007-09-09.01.45.50.99.rec/001.vdr Format : MPEG-PS File size : 14.4 MiB Duration : 19 s 600 ms Overall bit rate mode : Variable Overall bit rate : 6 146 kb/s FileExtension_Invalid : mpeg mpg m2p vob vro pss evo
Video ID : 224 (0xE0) Format : MPEG Video Format version : Version 2 Format profile : Main@Main Format settings : CustomMatrix / BVOP Format settings, BVOP : Yes Format settings, Matrix : Custom Format settings, GOP : M=3, N=12 Format settings, picture structure : Frame Duration : 19 s 600 ms Bit rate mode : Variable Bit rate : 5 128 kb/s Maximum bit rate : 15.0 Mb/s Width : 720 pixels Height : 576 pixels Display aspect ratio : 4:3 Frame rate : 25.000 FPS Standard : PAL Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Interlaced Scan order : Top Field First Compression mode : Lossy Bits/(Pixel*Frame) : 0.495 Time code of first frame : 16:48:28:08 Time code source : Group of pictures header GOP, Open/Closed : Open Stream size : 12.0 MiB (83%)
y tom
Tue, Jan 07, 2025 at 09:53:13PM +0100, Frantisek Rysanek wrote:
I got some video files in MPEG PS format.
Have you tried VLC ?
Sorry, I should have been more explicit. I thought that when I ask this on the VDR mailing list, it would be clear that I would like to play such files in VDR, by selecting them from the Recordings menu, or from a menu that is generated by a VDR plugin, similar to the DVD plugin which I remember trying some 20 years ago.
Yes, VLC is great for playing various files, including the two forms of recordings that VDR generates (001.vdr for MPEG PES in older VDR, and 00001.ts for MPEG TS). But I would like to play the files not on a general-purpose computer, but on my VDR box, that is, a Raspberry Pi 2 or 3 via the rpihddevice plugin. The GPU firmware is capable of decoding the video packets. With a multi-terabyte SSD, it makes a very compact and silent "video jukebox" system.
I'm not very fluent in the various container formats... could it be that the file is really in a "transport stream" format, maybe with a limited/filtered subset of PID's ?
The files that I would like to play back are not in MPEG TS but in MPEG PS format. As a test, I converted one of them into an MPEG TS container (ffmpeg -i file.mpg -codec copy 00001.ts). FFMPEG complained about some missing timestamp information, and VDR indicates that there are several errors per second. The playback seemed to be fine nevertheless.
It would be great if there was a way to make MPEG PS containers appear in a VDR menu so that they could be selected for playback. I know that I could convert the MPEG PS files to slightly malformed MPEG TS files, but I would like to avoid that step.
Marko
Can you share a 100M+ excerpt or 2 on a fileshare?
I wrote the vdr-convert script to transcode .vdr files to .ts format for the same reason, and to compress MPEG2 .ts vdr files to H264/5, also importantly to retain the AD and subs streams properly *in sync*, all using ffmpeg. And I wanted the results to be standard and compatible with vdr 2+ and 3rd party players like smplayer, vlc etc. It's possible, not so easy.
The .vdr conversion turns out to be a lot harder than most people think a) because the subs stream was split over multiple packets in a nonstandard private stream in .vdr files (even though they are dvbsubs), which them needed to be reconstructed, and b) you need several tweaks and bug workarounds for ffmpeg.
Stock ffmpeg particularly doesn’t like DTS timestamps missing in subs or worse messed up in A/V streams due to broadcasters chopping up the files and not rebuilding them properly, I've seen some of that.
Anyway, in all the messing around / patching ffmpeg, I built a little experience of 'broken' files for conversion. If I can remember, that might help.
Richard
On 11/01/2025 17:50, Marko Mäkelä wrote:
Tue, Jan 07, 2025 at 09:53:13PM +0100, Frantisek Rysanek wrote:
I got some video files in MPEG PS format.
Have you tried VLC ?
Sorry, I should have been more explicit. I thought that when I ask this on the VDR mailing list, it would be clear that I would like to play such files in VDR, by selecting them from the Recordings menu, or from a menu that is generated by a VDR plugin, similar to the DVD plugin which I remember trying some 20 years ago.
Yes, VLC is great for playing various files, including the two forms of recordings that VDR generates (001.vdr for MPEG PES in older VDR, and 00001.ts for MPEG TS). But I would like to play the files not on a general-purpose computer, but on my VDR box, that is, a Raspberry Pi 2 or 3 via the rpihddevice plugin. The GPU firmware is capable of decoding the video packets. With a multi-terabyte SSD, it makes a very compact and silent "video jukebox" system.
I'm not very fluent in the various container formats... could it be that the file is really in a "transport stream" format, maybe with a limited/filtered subset of PID's ?
The files that I would like to play back are not in MPEG TS but in MPEG PS format. As a test, I converted one of them into an MPEG TS container (ffmpeg -i file.mpg -codec copy 00001.ts). FFMPEG complained about some missing timestamp information, and VDR indicates that there are several errors per second. The playback seemed to be fine nevertheless.
It would be great if there was a way to make MPEG PS containers appear in a VDR menu so that they could be selected for playback. I know that I could convert the MPEG PS files to slightly malformed MPEG TS files, but I would like to avoid that step.
Marko
Am 11.01.2025 um 18:50 schrieb Marko Mäkelä:
Tue, Jan 07, 2025 at 09:53:13PM +0100, Frantisek Rysanek wrote:
I got some video files in MPEG PS format.
Have you tried VLC ?
Sorry, I should have been more explicit. I thought that when I ask this on the VDR mailing list, it would be clear that I would like to play such files in VDR, by selecting them from the Recordings menu, or from a menu that is generated by a VDR plugin, similar to the DVD plugin which I remember trying some 20 years ago.
You could try https://github.com/ua0lnj/vdr-plugin-mpv Jörg
Yes, VLC is great for playing various files, including the two forms of recordings that VDR generates (001.vdr for MPEG PES in older VDR, and 00001.ts for MPEG TS). But I would like to play the files not on a general-purpose computer, but on my VDR box, that is, a Raspberry Pi 2 or 3 via the rpihddevice plugin. The GPU firmware is capable of decoding the video packets. With a multi-terabyte SSD, it makes a very compact and silent "video jukebox" system.
I'm not very fluent in the various container formats... could it be that the file is really in a "transport stream" format, maybe with a limited/filtered subset of PID's ?
The files that I would like to play back are not in MPEG TS but in MPEG PS format. As a test, I converted one of them into an MPEG TS container (ffmpeg -i file.mpg -codec copy 00001.ts). FFMPEG complained about some missing timestamp information, and VDR indicates that there are several errors per second. The playback seemed to be fine nevertheless.
It would be great if there was a way to make MPEG PS containers appear in a VDR menu so that they could be selected for playback. I know that I could convert the MPEG PS files to slightly malformed MPEG TS files, but I would like to avoid that step.
Marko
Hi
maybe the following help you, if you can play the movies with mpv, the a plugin exist which can be integrated in vdr the name is vdr-plugin-mpv, it's on github.
here is the URL https://github.com/ua0lnj/vdr-plugin-mpv
i start the plugin with this parameters "-v gpu -a pipewire -h vaapi-copy -c x11egl -g 1920x1080 -b /media/sdb1/mkv"
the -b parameter is the starting directory for browsing.
Gerald
Am 11.01.25 um 18:50 schrieb Marko Mäkelä:
Tue, Jan 07, 2025 at 09:53:13PM +0100, Frantisek Rysanek wrote:
I got some video files in MPEG PS format.
Have you tried VLC ?
Sorry, I should have been more explicit. I thought that when I ask this on the VDR mailing list, it would be clear that I would like to play such files in VDR, by selecting them from the Recordings menu, or from a menu that is generated by a VDR plugin, similar to the DVD plugin which I remember trying some 20 years ago.
Yes, VLC is great for playing various files, including the two forms of recordings that VDR generates (001.vdr for MPEG PES in older VDR, and 00001.ts for MPEG TS). But I would like to play the files not on a general-purpose computer, but on my VDR box, that is, a Raspberry Pi 2 or 3 via the rpihddevice plugin. The GPU firmware is capable of decoding the video packets. With a multi-terabyte SSD, it makes a very compact and silent "video jukebox" system.
I'm not very fluent in the various container formats... could it be that the file is really in a "transport stream" format, maybe with a limited/filtered subset of PID's ?
The files that I would like to play back are not in MPEG TS but in MPEG PS format. As a test, I converted one of them into an MPEG TS container (ffmpeg -i file.mpg -codec copy 00001.ts). FFMPEG complained about some missing timestamp information, and VDR indicates that there are several errors per second. The playback seemed to be fine nevertheless.
It would be great if there was a way to make MPEG PS containers appear in a VDR menu so that they could be selected for playback. I know that I could convert the MPEG PS files to slightly malformed MPEG TS files, but I would like to avoid that step.
Marko